【PaddlePaddle】測試Paddle-Lite mobile_light C++示例程序

一、編譯Paddle-Lite android庫

可根據博客【PaddlePaddle】源碼編譯Paddle-Lite android庫的過程或者其他本地源碼編譯的方法編譯好android平臺的庫文件。

編譯好的庫文件位於Paddle-Lite/build.lite/android.armv8.gcc/inference_lite_lib.android.armv8/cxx/lib下。

二、轉化模型

按照博客【PaddlePaddle】原生模型轉化爲naive_buffer格式轉化Paddle-Lite支持的文件格式。

三、編譯預測程序

要測試的C++程序位於Paddle-Lite/build.lite/android.armv8.gcc/inference_lite_lib.android.armv8/demo/cxx/mobile_light下。

進入該目錄,執行make命令編譯程序。編譯成功之後多了兩個文件。

四、測試

首先連接android設備到電腦,adb devices查看一下連接的設備。

如果出現no permissions的提示,參考博客【Linux】Ubuntu16.04 adb devices提示no permissions的解決方法

然後將相關文件推送到手機。

chmod +x mobilenetv1_light_api
adb push mobilenet_v1_opt.nb /data/local/tmp
adb push libpaddle_light_api_shared.so /data/local/tmp
adb push mobilenetv1_light_api /data/local/tmp

下面執行預測。

進入android設備shell環境。

adb shell

export一個臨時庫路徑。

cd /data/local/tmp
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/data/local/tmp

執行預測。

./mobilenetv1_light_api ./mobilenet_v1_opt.nb

下面是輸出的結果。

輸出的結果是一個1000維的向量,應該是預訓練了1000個類別,向量的每一個元素是每個類別的概率,這裏取了每隔100個顯示一個。

這個例子非常簡單,它給了一個全1的輸入送進網絡進行預測。

結果應該是屬於這1000個類別的概率都很小。

當然也可以修改程序顯示其他的結果。

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