PaddleClas学习<三>端侧部署

2023-10-01 15:22:59
标签: paddle

作者: Sam(甄峰) sam_code@hotmail.com


0. Paddle Lite介绍:

PaddleClas的端侧部署依赖于Paddle Lite。Paddle Lite是Paddle推出的轻量级推理引擎,为手机,IoT端提供高效推理能力。并广泛整合跨平台硬件,为端侧部署和应用落地提供轻量级的部署方案。


1. Paddle Lite开发环境安装:

Sam选择在Linux下开发Paddle Lite推理。

共需要以下工作:

A. 安装Android NDK。

B. 下载Paddle lite Source.

C. 编译Paddle Lite extra版本。生成Paddle Lite armv7a/armv8 运行时库。

./lite/tools/build_android.sh --arch=armv7a --with_cv=ON --with_extra=ON

 

2. 模型优化环境安装和模型优化:

Paddle-Lite 提供了多种策略来自动优化原始的模型,其中包括量化、子图融合、混合调度、Kernel优选等方法,使用Paddle-Lite的opt工具可以自动对inference模型进行优化,目前支持两种优化方式,优化后的模型更轻量,模型运行速度更快。

注意,因为模型优化工具opt必须与推理库版本相同。所以建议自己编译opt. 

./lite/tools/build.sh build_optimize_tool

编译完成后,opt文件位于build.opt/lite/api/下,可通过如下方式查看opt的运行选项和使用方式.

./opt --valid_targets=arm --model_file=./pplc_net_PalmFist_0x_25_128/inference.pdmodel --param_file=./pplc_net_PalmFist_0x_25_128/inference.pdiparams --optimize_out=./pplc_net_PalmFist_0x_25_128

最终会生成: pplc_net_PalmFist_0x_25_128.nb


3. 推理代码:

Sam使用paddle-lite_extra/build.lite.android.armv7.clang/inference_lite_lib.android.armv7/demo/cxx/mobile_classify 为基础,改了一版分类推理代码。


4. 运行:

把相关opencv库,paddle库,模型,可执行程序等push到Android上。即可以正常运行。

 

阅读(0) 收藏(0) 转载(0) 举报/Report
相关阅读

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有