【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下。

【PaddlePaddle】测试Paddle-Lite mobile_light C++示例程序_第1张图片

进入该目录,执行make命令编译程序。编译成功之后多了两个文件。

【PaddlePaddle】测试Paddle-Lite mobile_light C++示例程序_第2张图片

四、测试

首先连接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

下面是输出的结果。

【PaddlePaddle】测试Paddle-Lite mobile_light C++示例程序_第3张图片

输出的结果是一个1000维的向量,应该是预训练了1000个类别,向量的每一个元素是每个类别的概率,这里取了每隔100个显示一个。

这个例子非常简单,它给了一个全1的输入送进网络进行预测。

【PaddlePaddle】测试Paddle-Lite mobile_light C++示例程序_第4张图片

结果应该是属于这1000个类别的概率都很小。

当然也可以修改程序显示其他的结果。

【PaddlePaddle】测试Paddle-Lite mobile_light C++示例程序_第5张图片

你可能感兴趣的:(PaddlePaddle,深度学习,android,Paddle-Lite,mobile_light,adb,devices,android,C++)