用paddlex转换模型.nb格式
基于《10分钟快速上手使用PaddleX2.0——PP-YOLOv2目标检测》做了实验,将训练的模型转换为可用于arm的格式,简单记录步骤如下。
注:百度飞桨入口(最新资料网址):飞桨PaddlePaddle-源于产业实践的开源深度学习平台
一、在AIStudio中用PP-YOLOv2训练
- 安装paddlex2.0.0
- 准备数据集(zip解压)
- 模型训练(图像transforms、pdx.datasets.VOCDetection处理VOC数据集、训练100轮),model = pdx.det.PPYOLOv2(num_classes=num_classes, backbone='ResNet50_vd_dcn')
二、转换模型格式
1、在终端安装paddlelite
pip install paddlelite
2、进入output文件夹
%cd ~/output/
3、导出为静态图模型
!paddlex --export_inference --model_dir=./ppyolov2_r50vd_dcn/best_model --save_dir=./inference_model
4、导出为arm可用的.nb模型
!paddle_lite_opt --model_dir=./inference_model/inference_model --optimize_out=ppyolov2_r50vd_dcn_opt --optimize_out_type=naive_buffer --valid_targets=arm
三、应用模型(Android为例)
1、下载demo
在github上下载相应平台的piddlelite demo项目。
2、修改demo项目
- 替换模型和相应的label文件 用转化后的model文件和label文件替换Android Demo中的对应位置。
- 修改predictor.java文件。一般需要修改代码中的“模型名称”和输入的shape。
- 参考“Android Demo部署方法”,重新构建并运行Android demo。