【PaddlePaddle】测试Paddle-Lite mobile_light C++示例程序
16lz
2021-01-26
一、编译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_apiadb push mobilenet_v1_opt.nb /data/local/tmpadb push libpaddle_light_api_shared.so /data/local/tmpadb push mobilenetv1_light_api /data/local/tmp
下面执行预测。
进入android设备shell环境。
adb shell
export一个临时库路径。
cd /data/local/tmpexport LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/data/local/tmp
执行预测。
./mobilenetv1_light_api ./mobilenet_v1_opt.nb
下面是输出的结果。
输出的结果是一个1000维的向量,应该是预训练了1000个类别,向量的每一个元素是每个类别的概率,这里取了每隔100个显示一个。
这个例子非常简单,它给了一个全1的输入送进网络进行预测。
结果应该是属于这1000个类别的概率都很小。
当然也可以修改程序显示其他的结果。
更多相关文章
- 如何下载并编译Android(安卓)4.0内核源码Goldfish
- 输入包名生成android应用demo的实现
- 【Android】Handler应用(二):从服务器端加载JSON数据的优化
- Android应用程序键盘(Keyboard)消息处理机制分析(7)
- Android——数据存储(四种方式之二)读写SD卡
- 电脑导出文件到手机 adb push
- Android(安卓)NDK r5 windows系统上安装与使用
- cocos2dx3.0打包注意事项
- Android(安卓)反编译:加固前后对比