【PaddlePaddle】测试Paddle-Lite mobile_light C++示例程序

Florida ·
更新时间:2024-11-13
· 607 次阅读

一、编译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个类别的概率都很小。

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


作者:heiheiya



paddlepaddle c+ 程序 示例 C++

需要 登录 后方可回复, 如果你还没有账号请 注册新账号