diff --git a/demo/auto_compression/detection/README.md b/demo/auto_compression/detection/README.md index 2cc064a37bcce67d7002a17eff86819d9873f893..44a7b00331b1ae05dd5149839d65ca5d4008de6c 100644 --- a/demo/auto_compression/detection/README.md +++ b/demo/auto_compression/detection/README.md @@ -1,41 +1,73 @@ -# 目标检测模型自动压缩 +# 目标检测模型自动压缩示例 -本示例将介绍如何使用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模型 | 模型 | 策略 | 输入尺寸 | mAPval
0.5:0.95 | 预测时延FP32
(ms) |预测时延FP32
(ms) | 预测时延INT8
(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 diff --git a/demo/auto_compression/semantic_segmentation/README.md b/demo/auto_compression/semantic_segmentation/README.md index 1a829ccf4b90f4a6f6cd6bbec3534d456fd98299..5235a88dcaa9e752094d4dddd894e410e8f02869 100644 --- a/demo/auto_compression/semantic_segmentation/README.md +++ b/demo/auto_compression/semantic_segmentation/README.md @@ -1,10 +1,10 @@ -# 语义分割自动压缩 +# 语义分割模型自动压缩示例 目录: - [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 \