Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
PaddleSlim
提交
0bb77724
P
PaddleSlim
项目概览
PaddlePaddle
/
PaddleSlim
1 年多 前同步成功
通知
51
Star
1434
Fork
344
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
53
列表
看板
标记
里程碑
合并请求
16
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
PaddleSlim
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
53
Issue
53
列表
看板
标记
里程碑
合并请求
16
合并请求
16
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
0bb77724
编写于
5月 17, 2022
作者:
C
Chang Xu
提交者:
GitHub
5月 17, 2022
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update PP-YOLOE-l and PP-HumanSeg-Lite ACT demo docs (#1110)
上级
637e165f
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
78 addition
and
31 deletion
+78
-31
demo/auto_compression/detection/README.md
demo/auto_compression/detection/README.md
+56
-23
demo/auto_compression/semantic_segmentation/README.md
demo/auto_compression/semantic_segmentation/README.md
+22
-8
未找到文件。
demo/auto_compression/detection/README.md
浏览文件 @
0bb77724
# 目标检测模型自动压缩
# 目标检测模型自动压缩
示例
本示例将介绍如何使用PaddleDetection中Inference部署模型进行自动压缩。
目录:
-
[
1.简介
](
#1简介
)
-
[
2.Benchmark
](
#2Benchmark
)
-
[
3.开始自动压缩
](
#自动压缩流程
)
-
[
3.1 环境准备
](
#31-准备环境
)
-
[
3.2 准备数据集
](
#32-准备数据集
)
-
[
3.3 准备预测模型
](
#33-准备预测模型
)
-
[
3.4 测试模型精度
](
#34-测试模型精度
)
-
[
3.5 自动压缩并产出模型
](
#35-自动压缩并产出模型
)
-
[
4.预测部署
](
#4预测部署
)
-
[
5.FAQ
](
5FAQ
)
## Benchmark
## 1. 简介
本示例将以目标检测模型PP-YOLOE-l为例,介绍如何使用PaddleDetection中Inference部署模型进行自动压缩。本示例使用的自动压缩策略为量化蒸馏。
-
PP-YOLOE模型:
## 2.Benchmark
-
PP-YOLOE模型
| 模型 | 策略 | 输入尺寸 | mAP
<sup>
val
<br>
0.5:0.95 | 预测时延
<sup><small>
FP32
</small><sup><br><sup>
(ms) |预测时延
<sup><small>
FP32
</small><sup><br><sup>
(ms) | 预测时延
<sup><small>
INT8
</small><sup><br><sup>
(ms) | 配置文件 | Inference模型 |
| :-------- |:-------- |:--------: | :---------------------: | :----------------: | :----------------: | :---------------: | :-----------------------------: | :-----------------------------: |
| PP-YOLOE-l | Base模型 | 640
*
640 | 50.9 | 11.2 | 7.7ms | - |
[
config
](
https://github.com/PaddlePaddle/PaddleDetection/blob/develop/configs/ppyoloe/ppyoloe_crn_l_300e_coco.yml
)
|
[
Model
](
https://bj.bcebos.com/v1/paddle-slim-models/detection/ppyoloe_crn_l_300e_coco.tar
)
|
| PP-YOLOE-l | 量化+蒸馏 | 640
*
640 |
49.5 | - | - | 6.7ms |
[
config
](
https://github.com/PaddlePaddle/PaddleSlim/tree/develop/demo/auto_compression/detection/configs/ppyoloe_l_qat_dist.yaml
)
|
[
Model
](
https://bj.bcebos.com/v1/paddle-slim-models/detection
/ppyoloe_crn_l_300e_coco_quant.tar
)
|
| PP-YOLOE-l | 量化+蒸馏 | 640
*
640 |
50.6 | - | - | 6.7ms |
[
config
](
https://github.com/PaddlePaddle/PaddleSlim/tree/develop/demo/auto_compression/detection/configs/ppyoloe_l_qat_dist.yaml
)
|
[
Model
](
https://bj.bcebos.com/v1/paddle-slim-models/act
/ppyoloe_crn_l_300e_coco_quant.tar
)
|
-
mAP的指标均在COCO val2017数据集中评测得到。
-
PP-YOLOE模型在Tesla V100的GPU环境下测试,测试脚本是
[
benchmark demo
](
https://github.com/PaddlePaddle/PaddleDetection/tree/release/2.4/deploy/python
)
## 环境准备
### 1. 准备数据
## 3. 自动压缩流程
本案例默认以COCO数据进行自动压缩实验,如果自定义COCO数据,或者其他格式数据,请参考
[
PaddleDetection数据准备文档
](
https://github.com/PaddlePaddle/PaddleDetection/blob/release/2.4/docs/tutorials/PrepareDataSet.md
)
来准备数据。
如果数据集为非COCO格式数据,请修改
[
configs
](
./configs
)
中reader配置文件中的Dataset字段。
#### 3.1 准备环境
-
PaddlePaddle >= 2.2 (可从
[
Paddle官网
](
https://www.paddlepaddle.org.cn/install/quick?docurl=/documentation/docs/zh/install/pip/linux-pip.html
)
下载安装)
-
PaddleSlim >= 2.3 或者适当develop版本
-
PaddleDet >= 2.4
### 2. 准备需要量化的环境
安装paddlepaddle:
```
shell
# CPU
pip
install
paddlepaddle
# GPU
pip
install
paddlepaddle-gpu
```
-
PaddlePaddle >= 2.2
-
PaddleDet >= 2.4
安装paddleslim:
```
shell
pip
install
paddleslim
```
安装paddledet:
```
shell
pip
install
paddledet
```
注:安装PaddleDet的目的是为了直接使用PaddleDetection中的Dataloader组件。
### 3. 准备待量化的部署模型
如果已经准备好部署的
`model.pdmodel`
和
`model.pdiparams`
部署模型,跳过此步。
#### 3.2 准备数据集
本案例默认以COCO数据进行自动压缩实验,如果自定义COCO数据,或者其他格式数据,请参考
[
PaddleDetection数据准备文档
](
https://github.com/PaddlePaddle/PaddleDetection/blob/release/2.4/docs/tutorials/PrepareDataSet.md
)
来准备数据。
如果数据集为非COCO格式数据,请修改
[
configs
](
./configs
)
中reader配置文件中的Dataset字段。
#### 3.3 准备预测模型
预测模型的格式为:
`model.pdmodel`
和
`model.pdiparams`
两个,带
`pdmodel`
的是模型文件,带
`pdiparams`
后缀的是权重文件。
注:其他像
`__model__`
和
`__params__`
分别对应
`model.pdmodel`
和
`model.pdiparams`
文件。
根据
[
PaddleDetection文档
](
https://github.com/PaddlePaddle/PaddleDetection/blob/develop/docs/tutorials/GETTING_STARTED_cn.md#8-%E6%A8%A1%E5%9E%8B%E5%AF%BC%E5%87%BA
)
导出Inference模型,具体可参考下方PP-YOLOE模型的导出示例:
-
下载代码
...
...
@@ -59,27 +91,28 @@ wget https://bj.bcebos.com/v1/paddle-slim-models/detection/ppyoloe_crn_l_300e_co
tar
-xf
ppyoloe_crn_l_300e_coco.tar
```
###
4. 测试模型精度
###
# 3.
4. 测试模型精度
使用
[
run.py
](
run.py
)
脚本得到模型的mAP:
使用
run.py
脚本得到模型的mAP:
```
python run.py --config_path=./configs/ppyoloe_l_qat_dist.yaml --eval=True
```
**注意**
:TinyPose模型暂不支持精度测试。
##
开始自动压缩
##
## 3.5 自动压缩并产出模型
### 进行量化蒸馏自动压缩
蒸馏量化自动压缩示例通过
[
run.py
](
run.py
)
脚本启动,会使用接口
``paddleslim.auto_compression.AutoCompression``
对模型进行量化训练。具体运行命令为:
蒸馏量化自动压缩示例通过run.py脚本启动,会使用接口
```paddleslim.auto_compression.AutoCompression```
对模型进行自动压缩。配置config文件中模型路径、蒸馏、量化、和训练等部分的参数,配置完成后便可对模型进行量化和蒸馏。具体运行命令为:
```
python run.py --config_path=./configs/ppyoloe_l_qat_dist.yaml --save_dir='./output/'
--devices='gpu'
python run.py --config_path=./configs/ppyoloe_l_qat_dist.yaml --save_dir='./output/'
```
## 部署
##
4.预测
部署
可以参考
[
PaddleDetection部署教程
](
https://github.com/PaddlePaddle/PaddleDetection/tree/release/2.4/deploy
)
:
-
GPU上量化模型开启TensorRT并设置trt_int8模式进行部署;
-
CPU上可参考
[
X86 CPU部署量化模型教程
](
https://github.com/PaddlePaddle/Paddle-Inference-Demo/blob/master/docs/optimize/paddle_x86_cpu_int8.md
)
;
-
移动端请直接使用
[
Paddle Lite Demo
](
https://github.com/PaddlePaddle/PaddleDetection/tree/release/2.4/deploy/lite
)
部署。
## 5.FAQ
demo/auto_compression/semantic_segmentation/README.md
浏览文件 @
0bb77724
# 语义分割
自动压缩
# 语义分割
模型自动压缩示例
目录:
-
[
1.简介
](
#1简介
)
-
[
2.Benchmark
](
#2Benchmark
)
-
[
3.开始自动压缩
](
#
开始自动压缩
)
-
[
3.1 环境准备
](
#31-
环境准备
)
-
[
3.开始自动压缩
](
#
自动压缩流程
)
-
[
3.1 环境准备
](
#31-
准备环境
)
-
[
3.2 准备数据集
](
#32-准备数据集
)
-
[
3.3 准备预测模型
](
#33-准备预测模型
)
-
[
3.4 自动压缩并产出模型
](
#34-自动压缩并产出模型
)
...
...
@@ -13,7 +13,7 @@
## 1.简介
语义分割是计算机视觉领域重要的一个研究方向,在很多场景中均有应用落地,语义分割模型的部署落地的性能也倍受关注,自动压缩工具(ACT)致力于更便捷的自动压缩优化模型,达到压缩模型体积、加速模型预测的效果
。
本示例将以语义分割模型PP-HumanSeg-Lite为例,介绍如何使用PaddleSeg中Inference部署模型进行自动压缩。本示例使用的自动压缩策略为非结构化稀疏、蒸馏和量化、蒸馏
。
## 2.Benchmark
...
...
@@ -30,16 +30,30 @@
下面将以开源数据集为例介绍如何进行自动压缩。
## 3.
开始自动压缩
## 3.
自动压缩流程
#### 3.1
环境准备
#### 3.1
准备环境
-
PaddlePaddle >= 2.2 (从
[
Paddle官网
](
https://www.paddlepaddle.org.cn/install/quick?docurl=/documentation/docs/zh/install/pip/linux-pip.html
)
下载安装)
-
PaddlePaddle >= 2.2 (
可
从
[
Paddle官网
](
https://www.paddlepaddle.org.cn/install/quick?docurl=/documentation/docs/zh/install/pip/linux-pip.html
)
下载安装)
-
PaddleSlim >= 2.3 或者适当develop版本
-
PaddleSeg >= 2.5
安装paddlepaddle:
```
shell
# CPU
pip
install
paddlepaddle
# GPU
pip
install
paddlepaddle-gpu
```
安装paddleslim:
```
shell
pip
install
paddleslim
```
安装paddleseg
```
shell
pip
install
paddleseg
```
...
...
@@ -68,7 +82,7 @@ tar -xzf ppseg_lite_portrait_398x224_with_softmax.tar.gz
#### 3.4 自动压缩并产出模型
首先要配置config文件中模型路径、数据集路径、蒸馏、量化、稀疏化和训练等部分的参数,配置完成后便可开始自动压缩
。
自动压缩示例通过run.py脚本启动,会使用接口
```paddleslim.auto_compression.AutoCompression```
对模型进行自动压缩。配置config文件中模型路径、数据集路径、蒸馏、量化、稀疏化和训练等部分的参数,配置完成后便可对模型进行非结构化稀疏、蒸馏和量化、蒸馏
。
```
shell
python run.py
\
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录