SNPE SDK工具介绍

一、简介
在SNPE中存在大量的工具以及功能,本节中我们将对其中的部分工具展开介绍,这些工具我们在使用SNPE时也会经常性的用到。

二、SNPE工具介绍
SNPE工具概览:
snpe-net-run
snpe_bench.py
snpe-caffe-to-dlc
snpe-caffe2-to-dlc
snpe-diagview
snpe-dlc-info
snpe-dlc-diff
snpe-dlc-viewer
snpe-dlc-quantize
snpe-tensorflow-to-dlc
snpe-onnx-to-dlc
snpe-platform-validator
snpe-platform-validator-py
snpe-throughput-net-run

首先我们来了解下第一个,也就是snpe-net-run:
snpe-net-run加载DLC文件,加载输入张量的数据,并在指定的运行时执行网络。
在这里插入图片描述

默认情况下,此二进制文件将原始输出张量输出到输出文件夹中。 在运行AlexNet教程中可以找到使用snpe-net-run的示例。

额外细节:
运行批处理输入:
snpe-net-run能够自动批处理输入数据。 批处理大小在模型容器(DLC文件)中指示,但也可以使用传递给snpe-net-run的“ input_dimensions”参数进行设置。 用户不需要批处理其输入数据。 如果输入数据不是批处理,则输入大小必须是输入数据文件大小的倍数。 snpe-net-run会将提供的输入分组,并用零填充不完整的批次(如果存在)。

在下面的示例中,将模型设置为接受三个输入的批次。 因此,通过snpe-net-run将输入自动分组在一起以形成批处理,并对最终批处理进行填充。 请注意,snpe-net-run生成了五个输出文件:

Processing DNN input(s):
cropped/notice_sign.raw
cropped/trash_bin.raw
cropped/plastic_cup.raw
Processing DNN input(s):
cropped/handicap_sign.raw
cropped/chairs.raw
Applying padding
input_list参数:
snpe-net-run每次迭代可以将多个输入文件作为输入数据,并在格式如下的输入列表文件中指定多个输出名称: #<output_name>[<output_name>]
<input_layer_name>:=<input_layer_path>[<input_layer_name>:=<input_layer_path>]

第一行以“#”开头,指定输出图层的名称。 如果有多个输出,则应使用空格作为定界符。 在第一行之后,您可以使用多行来提供输入文件,每次迭代只提供一行,并且每行仅提供一层。如果每行有多个输入,则应使用空格作为分隔符。

这是一个示例,其中图层名称为“ Input_1”和“ Input_2”,而输入位于路径“ Placeholder_1 / real_input_inputs_1 /”中。 其输入列表文件应如下所示:

#Output_1 Output_2
Input_1:=Placeholder_1/real_input_inputs_1/0-0#e6fb51.rawtensor Input_2:=Placeholder_1/real_input_inputs_1/0-1#8a171b.rawtensor
Input_1:=Placeholder_1/real_input_inputs_1/1-0#67c965.rawtensor Input_2:=Placeholder_1/real_input_inputs_1/1-1#54f1ff.rawtensor
Input_1:=Placeholder_1/real_input_inputs_1/2-0#b42dc6.rawtensor Input_2:=Placeholder_1/real_input_inputs_1/2-1#346a0e.rawtensor
注意:如果模型的批次尺寸大于1,则输入文件中的批次元素数量必须与DLC中指定的批次尺寸匹配,或者必须为1。 在后一种情况下,snpe-net-run将多条线合并为一个输入张量。

运行AIP运行时:
1、AIP运行时需要量化的DLC,并且离线生成HTA部分。 请参阅添加HTA部分
2、AIP运行时不支持debug_mode
3、AIP运行时不支持批处理

snpe_bench.py
python脚本snpe_bench.py运行DLC神经网络并收集基准性能信息。
在这里插入图片描述

snpe-caffe2-to-dlc
snpe-caffe2-to-dlc将Caffe2模型转换为SNPE DLC文件(我们在初次安装好SNPE的时候就会发现,它运行时是需要Caffe环境的,同时也可以把Caffe训练模型转化为dlc模型来使用)。
在这里插入图片描述

三、总结
本篇文章中,我们着重的介绍了Caffe和网络相关的几个工具,当然看列表也可以发现其中还有很多我们没有介绍到,大家感兴趣的话可以去高通开发者官网进行学习。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章