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和網絡相關的幾個工具,當然看列表也可以發現其中還有很多我們沒有介紹到,大家感興趣的話可以去高通開發者官網進行學習。

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