Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
PaddleClas
提交
84d44a9d
P
PaddleClas
项目概览
PaddlePaddle
/
PaddleClas
1 年多 前同步成功
通知
116
Star
4999
Fork
1114
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
19
列表
看板
标记
里程碑
合并请求
6
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
PaddleClas
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
19
Issue
19
列表
看板
标记
里程碑
合并请求
6
合并请求
6
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
84d44a9d
编写于
2月 28, 2022
作者:
G
gaotingquan
提交者:
Tingquan Gao
3月 01, 2022
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
docs: add the dircription about PaddleLite opt
上级
4fc82eef
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
100 addition
and
10 deletion
+100
-10
deploy/lite_shitu/README.md
deploy/lite_shitu/README.md
+95
-7
docs/zh_CN/advanced_tutorials/gallery2fc.md
docs/zh_CN/advanced_tutorials/gallery2fc.md
+5
-3
未找到文件。
deploy/lite_shitu/README.md
浏览文件 @
84d44a9d
...
...
@@ -81,12 +81,13 @@ inference_lite_lib.android.armv8/
| `-- java Java 预测库demo
```
## 2
开始运行
## 2
模型准备
### 2.1 模型准备
PaddleClas 提供了转换并优化后的推理模型,可以直接参考下方 2.1.1 小节进行下载。如果需要使用其他模型,请参考后续 2.1.2 小节自行转换并优化模型。
#### 2.1.1
模型准备
#### 2.1.1
使用PaddleClas提供的推理模型
```
shell
# 进入lite_ppshitu目录
...
...
@@ -96,7 +97,97 @@ tar -xf ppshitu_lite_models_v1.0.tar
rm
-f
ppshitu_lite_models_v1.0.tar
```
#### 2.1.2将yaml文件转换成json文件
#### 2.1.2 使用其他模型
Paddle-Lite 提供了多种策略来自动优化原始的模型,其中包括量化、子图融合、混合调度、Kernel优选等方法,使用Paddle-Lite的
`opt`
工具可以自动对inference模型进行优化,目前支持两种优化方式,优化后的模型更轻量,模型运行速度更快。
**注意**
:如果已经准备好了
`.nb`
结尾的模型文件,可以跳过此步骤。
##### 2.1.2.1 安装paddle_lite_opt工具
安装
`paddle_lite_opt`
工具有如下两种方法:
1.
[
**建议**
]pip安装paddlelite并进行转换
```
shell
pip
install
paddlelite
==
2.10rc
```
2.
源码编译Paddle-Lite生成
`paddle_lite_opt`
工具
模型优化需要Paddle-Lite的`opt`可执行文件,可以通过编译Paddle-Lite源码获得,编译步骤如下:
```shell
# 如果准备环境时已经clone了Paddle-Lite,则不用重新clone Paddle-Lite
git clone https://github.com/PaddlePaddle/Paddle-Lite.git
cd Paddle-Lite
git checkout develop
# 启动编译
./lite/tools/build.sh build_optimize_tool
```
编译完成后,`opt`文件位于`build.opt/lite/api/`下,可通过如下方式查看`opt`的运行选项和使用方式;
```shell
cd build.opt/lite/api/
./opt
```
`opt`的使用方式与参数与上面的`paddle_lite_opt`完全一致。
之后使用
`paddle_lite_opt`
工具可以进行inference模型的转换。
`paddle_lite_opt`
的部分参数如下:
|选项|说明|
|-|-|
|--model_file|待优化的PaddlePaddle模型(combined形式)的网络结构文件路径|
|--param_file|待优化的PaddlePaddle模型(combined形式)的权重文件路径|
|--optimize_out_type|输出模型类型,目前支持两种类型:protobuf和naive_buffer,其中naive_buffer是一种更轻量级的序列化/反序列化实现,默认为naive_buffer|
|--optimize_out|优化模型的输出路径|
|--valid_targets|指定模型可执行的backend,默认为arm。目前可支持x86、arm、opencl、npu、xpu,可以同时指定多个backend(以空格分隔),Model Optimize Tool将会自动选择最佳方式。如果需要支持华为NPU(Kirin 810/990 Soc搭载的达芬奇架构NPU),应当设置为npu, arm|
更详细的
`paddle_lite_opt`
工具使用说明请参考
[
使用opt转化模型文档
](
https://paddle-lite.readthedocs.io/zh/latest/user_guides/opt/opt_bin.html
)
`--model_file`
表示inference模型的model文件地址,
`--param_file`
表示inference模型的param文件地址;
`optimize_out`
用于指定输出文件的名称(不需要添加
`.nb`
的后缀)。直接在命令行中运行
`paddle_lite_opt`
,也可以查看所有参数及其说明。
##### 2.1.2.2 转换示例
下面介绍使用
`paddle_lite_opt`
完成主体检测模型和识别模型的预训练模型,转成inference模型,最终转换成Paddle-Lite的优化模型的过程。
1.
转换主体检测模型
```
shell
# 当前目录为 $PaddleClas/deploy/lite_shitu
# $code_path需替换成相应的运行目录,可以根据需要,将$code_path设置成需要的目录
export
$code_path
=
~
cd
$code_path
git clone https://github.com/PaddlePaddle/PaddleDetection.git
# 进入PaddleDetection根目录
cd
PaddleDetection
# 将预训练模型导出为inference模型
python tools/export_model.py
-c
configs/picodet/application/mainbody_detection/picodet_lcnet_x2_5_640_mainbody.yml
-o
weights
=
https://paddledet.bj.bcebos.com/models/picodet_lcnet_x2_5_640_mainbody.pdparams
--output_dir
=
inference
# 将inference模型转化为Paddle-Lite优化模型
paddle_lite_opt
--model_file
=
inference/picodet_lcnet_x2_5_640_mainbody/model.pdmodel
--param_file
=
inference/picodet_lcnet_x2_5_640_mainbody/model.pdiparams
--optimize_out
=
inference/picodet_lcnet_x2_5_640_mainbody/mainbody_det
# 将转好的模型复制到lite_shitu目录下
cd
$PaddleClas
/deploy/lite_shitu
mkdir
models
cp
$code_path
/PaddleDetection/inference/picodet_lcnet_x2_5_640_mainbody/mainbody_det.nb
$PaddleClas
/deploy/lite_shitu/models
```
2.
转换识别模型
请先参考
[
识别模型转分类模型
](
../../docs/zh_CN/advanced_tutorials/gallery2fc.md
)
完成识别模型到分类模型的转换。
在得到 inference 推理模型(后缀名为
`.pdmodel`
、
`.pdiparams`
)以及
`label.txt`
后,再使用 PaddleLite opt 工具完成模型优化,命令如下:
```
shell
# 转换为Paddle-Lite模型
paddle_lite_opt
--model_file
=
inference/inference.pdmodel
--param_file
=
inference/inference.pdiparams
--optimize_out
=
inference/rec
# 将模型、label文件拷贝到lite_shitu下
cp
inference/rec.nb deploy/lite_shitu/models/
cp
inference/label.txt deploy/lite_shitu/models/
cd
deploy/lite_shitu
```
**注意**
:
`--optimize_out`
参数为优化后模型的保存路径,无需加后缀
`.nb`
;
`--model_file`
参数为模型结构信息文件的路径,
`--param_file`
参数为模型权重信息文件的路径,请注意文件名。
### 2.2 将yaml文件转换成json文件
```
shell
# 如果测试单张图像
...
...
@@ -109,7 +200,7 @@ python generate_json_config.py --det_model_path ppshitu_lite_models_v1.0/mainbod
```
### 2.
2
与手机联调
### 2.
3
与手机联调
首先需要进行一些准备工作。
1.
准备一台arm8的安卓手机,如果编译的预测库是armv7,则需要arm7的手机,并修改Makefile中
`ARM_ABI=arm7`
。
...
...
@@ -216,6 +307,3 @@ A1:如果已经走通了上述步骤,更换模型只需要替换 `.nb` 模
Q2:换一个图测试怎么做?
A2:替换 deploy 下的测试图像为你想要测试的图像,并重新生成json配置文件(或者直接修改图像路径),使用 ADB 再次 push 到手机上即可。
Q3:如果需要更换模型/预训练模型/底库数据集,需要怎么做:
A:请参考文档
[
基于分类方法的 PP-Shitu 移动端部署方案说明
](
./gallery2fc.md
)
。
docs/zh_CN/advanced_tutorials/gallery2fc.md
浏览文件 @
84d44a9d
# 识别模型转分类模型
PaddleClas 提供了
`gallery2fc.py`
工具,帮助大家将识别模型转为分类模型。
PaddleClas 提供了
`gallery2fc.py`
工具,帮助大家将识别模型转为分类模型。目前该工具仅支持转换量化后模型,因此建议使用 PaddleClas 提供的
`general_PPLCNet_x2_5_pretrained_v1.0_quant`
预训练模型,该模型为量化后的通用识别模型,backbone 为 PPLCNet_x2_5。
如需使用其他模型,关于量化的具体操作请参考文档
[
模型量化
](
./model_prune_quantization.md
)
。
## 一、模型转换说明
...
...
@@ -8,7 +10,7 @@ PaddleClas 提供了 `gallery2fc.py` 工具,帮助大家将识别模型转为
#### 1. 底库数据集
首先需要准备好底库数据,下面以 PaddleClas 提供饮料数据集(drink_dataset_v1.0)为例进行说明,饮料数据集获取方法:
首先需要准备好底库数据,下面以 PaddleClas 提供
的
饮料数据集(drink_dataset_v1.0)为例进行说明,饮料数据集获取方法:
```
shell
cd
PaddleClas/
...
...
@@ -40,7 +42,7 @@ wget https://paddle-imagenet-models-name.bj.bcebos.com/dygraph/rec/models/pretra
*
image_root: 底库数据集路径;
*
data_file: 底库数据集列表文件路径;
### 1.3
转换特征提取模型
### 1.3
模型转换
在完成上述准备工作后,即可进行模型转换,命令如下所示:
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录