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上。即可以正常运行。
PaddleClas学习<三>端侧部署
作者: 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上。即可以正常运行。