# 压缩benchmark
在PaddleDetection, 提供了基于PaddleSlim进行模型压缩的完整教程和实验结果。详细教程请参考:
- [量化](quantization)
- [裁剪](prune)
- [蒸馏](distillation)
- [搜索](nas)
下面给出压缩的benchmark实验结果。
## 测试环境
- Python 2.7.1
- PaddlePaddle >=1.6
- CUDA 9.0
- cuDNN >=7.4
- NCCL 2.1.2
## 剪裁模型库
### 训练策略
- 剪裁模型训练时使用[PaddleDetection模型库](https://paddledetection.readthedocs.io/MODEL_ZOO_cn.html)发布的模型权重作为预训练权重。
- 剪裁训练使用模型默认配置,即除`pretrained_weights`外配置不变。
- 剪裁模型全部为基于敏感度的卷积通道剪裁。
- YOLOv3模型主要剪裁`yolo_head`部分,即剪裁参数如下。
```
--pruned_params="yolo_block.0.0.0.conv.weights,yolo_block.0.0.1.conv.weights,yolo_block.0.1.0.conv.weights,yolo_block.0.1.1.conv.weights,yolo_block.0.2.conv.weights,yolo_block.0.tip.conv.weights,yolo_block.1.0.0.conv.weights,yolo_block.1.0.1.conv.weights,yolo_block.1.1.0.conv.weights,yolo_block.1.1.1.conv.weights,yolo_block.1.2.conv.weights,yolo_block.1.tip.conv.weights,yolo_block.2.0.0.conv.weights,yolo_block.2.0.1.conv.weights,yolo_block.2.1.0.conv.weights,yolo_block.2.1.1.conv.weights,yolo_block.2.2.conv.weights,yolo_block.2.tip.conv.weights"
```
- YOLOv3模型剪裁中剪裁策略`r578`表示`yolo_head`中三个输出分支一次使用`0.5, 0.7, 0.8`的剪裁率剪裁,即剪裁率如下。
```
--pruned_ratios="0.5,0.5,0.5,0.5,0.5,0.5,0.7,0.7,0.7,0.7,0.7,0.7,0.8,0.8,0.8,0.8,0.8,0.8"
```
- YOLOv3模型剪裁中剪裁策略`sensity`表示`yolo_head`中各参数剪裁率如下,该剪裁率为使用`yolov3_mobilnet_v1`模型在COCO数据集上敏感度实验分析得出。
```
--pruned_ratios="0.1,0.2,0.2,0.2,0.2,0.1,0.2,0.3,0.3,0.3,0.2,0.1,0.3,0.4,0.4,0.4,0.4,0.3"
```
### YOLOv3 on COCO
| 骨架网络 | 剪裁策略 | GFLOPs | 模型体积(MB) | 输入尺寸 | Box AP | 下载 |
| :----------------| :-------: | :------------: | :-------------: | :------: | :--------: | :-----------------------------------------------------: |
| ResNet50-vd-dcn | baseline | 44.71 | 176.82 | 608 | 39.1 | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/yolov3_r50vd_dcn.tar) |
| ResNet50-vd-dcn | sensity | 37.53(-16.06%) | 149.49(-15.46%) | 608 | 39.8(+0.7) | [下载链接](https://paddlemodels.bj.bcebos.com/PaddleSlim/prune/yolov3_r50vd_dcn_prune1x.tar) |
| ResNet50-vd-dcn | r578 | 29.98(-32.94%) | 112.08(-36.61%) | 608 | 38.3(-0.8) | [下载链接](https://paddlemodels.bj.bcebos.com/PaddleSlim/prune/yolov3_r50vd_dcn_prune578.tar) |
| MobileNetV1 | baseline | 20.64 | 94.60 | 608 | 29.3 | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/yolov3_mobilenet_v1.tar) |
| MobileNetV1 | baseline | 9.66 | 94.60 | 416 | 29.3 | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/yolov3_mobilenet_v1.tar) |
| MobileNetV1 | baseline | 5.72 | 94.60 | 320 | 27.1 | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/yolov3_mobilenet_v1.tar) |
| MobileNetV1 | sensity | 13.57(-34.27%) | 67.60(-28.54%) | 608 | 30.2(+0.9) | [下载链接](https://paddlemodels.bj.bcebos.com/PaddleSlim/prune/yolov3_mobilenet_v1_prune1x.tar) |
| MobileNetV1 | sensity | 6.35(-34.27%) | 67.60(-28.54%) | 416 | 29.7(+0.4) | [下载链接](https://paddlemodels.bj.bcebos.com/PaddleSlim/prune/yolov3_mobilenet_v1_prune1x.tar) |
| MobileNetV1 | sensity | 3.76(-34.27%) | 67.60(-28.54%) | 320 | 27.2(+0.1) | [下载链接](https://paddlemodels.bj.bcebos.com/PaddleSlim/prune/yolov3_mobilenet_v1_prune1x.tar) |
| MobileNetV1 | r578 | 6.27(-69.64%) | 31.30(-66.90%) | 608 | 27.8(-1.5) | [下载链接](https://paddlemodels.bj.bcebos.com/PaddleSlim/prune/yolov3_mobilenet_v1_prune578.tar) |
| MobileNetV1 | r578 | 2.93(-69.64%) | 31.30(-66.90%) | 416 | 26.8(-2.5) | [下载链接](https://paddlemodels.bj.bcebos.com/PaddleSlim/prune/yolov3_mobilenet_v1_prune578.tar) |
| MobileNetV1 | r578 | 1.74(-69.64%) | 31.30(-66.90%) | 320 | 24.0(-3.1) | [下载链接](https://paddlemodels.bj.bcebos.com/PaddleSlim/prune/yolov3_mobilenet_v1_prune578.tar) |
- YOLO v3在训练阶段对minibatch采用随机reshape,可以采用相同的模型权重不同尺寸图片,表中`YOLOv3-MobileNetV1`提供了在`608/416/320`三种不同尺寸下的精度结果
- 在使用`sensity`剪裁策略下,`YOLOv3-ResNet50-vd-dcn`和`YOLOv3-MobileNetV1`分别减少了`16.06%`和`34.27%`的FLOPs,输入图像尺寸为608时精度分别提高`0.7`和`0.9`
- 在使用`r578`剪裁策略下,`YOLOv3-ResNet50-vd-dcn`和`YOLOv3-MobileNetV1`分别减少了`32.98%`和`69.64%`的FLOPs,输入图像尺寸为608时精度分别降低`0.8`和`1.5`
### YOLOv3 on Pascal VOC
| 骨架网络 | 剪裁策略 | GFLOPs | 模型体积(MB) | 输入尺寸 | Box AP | 下载 |
| :----------------| :-------: | :------------: | :-------------: | :------: | :--------: | :-----------------------------------------------------: |
| MobileNetV1 | baseline | 20.20 | 93.37 | 608 | 76.2 | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/yolov3_mobilenet_v1_voc.tar) |
| MobileNetV1 | baseline | 9.46 | 93.37 | 416 | 76.7 | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/yolov3_mobilenet_v1_voc.tar) |
| MobileNetV1 | baseline | 5.60 | 93.37 | 320 | 75.3 | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/yolov3_mobilenet_v1_voc.tar) |
| MobileNetV1 | sensity | 13.22(-34.55%) | 66.53(-28.74%) | 608 | 78.4(+2.2) | [下载链接](https://paddlemodels.bj.bcebos.com/PaddleSlim/prune/yolov3_mobilenet_v1_voc_prune1x.tar) |
| MobileNetV1 | sensity | 6.19(-34.55%) | 66.53(-28.74%) | 416 | 78.7(+2.0) | [下载链接](https://paddlemodels.bj.bcebos.com/PaddleSlim/prune/yolov3_mobilenet_v1_voc_prune1x.tar) |
| MobileNetV1 | sensity | 3.66(-34.55%) | 66.53(-28.74%) | 320 | 76.1(+0.8) | [下载链接](https://paddlemodels.bj.bcebos.com/PaddleSlim/prune/yolov3_mobilenet_v1_voc_prune1x.tar) |
| MobileNetV1 | r578 | 6.15(-69.57%) | 30.81(-67.00%) | 608 | 77.6(+1.4) | [下载链接](https://paddlemodels.bj.bcebos.com/PaddleSlim/prune/yolov3_mobilenet_v1_voc_prune578.tar) |
| MobileNetV1 | r578 | 2.88(-69.57%) | 30.81(-67.00%) | 416 | 77.7(+1.0) | [下载链接](https://paddlemodels.bj.bcebos.com/PaddleSlim/prune/yolov3_mobilenet_v1_voc_prune578.tar) |
| MobileNetV1 | r578 | 1.70(-69.57%) | 30.81(-67.00%) | 320 | 75.5(+0.2) | [下载链接](https://paddlemodels.bj.bcebos.com/PaddleSlim/prune/yolov3_mobilenet_v1_voc_prune578.tar) |
- YOLO v3在训练阶段对minibatch采用随机reshape,可以采用相同的模型权重不同尺寸图片,表中`YOLOv3-MobileNetV1`提供了在`608/416/320`三种不同尺寸下的精度结果
- 在使用`sensity`和`r578`剪裁策略下,`YOLOv3-MobileNetV1`分别减少了`34.55%`和`69.57%`的FLOPs,输入图像尺寸为608时精度分别提高`2.2`和`1.4`
### 蒸馏通道剪裁模型
可通过高精度模型蒸馏通道剪裁后模型的方式,训练方法及相关示例见[蒸馏通道剪裁模型](https://github.com/PaddlePaddle/PaddleDetection/blob/develop/static/slim/extensions/distill_pruned_model/distill_pruned_model_demo.ipynb)。
COCO数据集上蒸馏通道剪裁模型库如下。
| 骨架网络 | 剪裁策略 | GFLOPs | 模型体积(MB) | 输入尺�
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
1、资源内容:YOLO-人脸检测目标检测数据集-以PaddleDetection框架和YY-YOLOv2模型实现"人脸检测"+源代码+文档说明 2、代码特点:内含运行结果,不会运行可私信,参数化编程、参数可方便更改、代码编程思路清晰、注释明细,都经过测试运行成功,功能ok的情况下才上传的。 3、适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 4、作者介绍:某大厂资深算法工程师,从事Matlab、Python、C/C++、Java、YOLO算法仿真工作10年;擅长计算机视觉、 目标检测模型、智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、智能控制、路径规划、无人机等多种领域的算法仿真实验,更多源码,请上博主主页搜索。 -------------------------------------------------------------------------- -
资源推荐
资源详情
资源评论
收起资源包目录
YOLO-人脸检测目标检测数据集-以PaddleDetection框架和YY-YOLOv2模型实现"人脸检测"+源代码+文档说明 (1626个子文件)
gradlew.bat 2KB
gradlew.bat 2KB
make.bat 819B
main_keypoint.cc 22KB
trajectory.cc 17KB
object_detector.cc 16KB
trajectory.cc 15KB
main.cc 15KB
main.cc 15KB
run_detection.cc 13KB
pipeline.cc 13KB
jde_detector.cc 12KB
object_detector.cc 12KB
keypoint_detector.cc 12KB
tracker.cc 10KB
tracker.cc 10KB
Pipeline.cc 10KB
preprocess_op.cc 9KB
main_jde.cc 9KB
object_detector.cc 9KB
keypoint_postprocess.cc 8KB
keypoint_postprocess.cc 8KB
keypoint_detector.cc 8KB
jde_predictor.cc 8KB
main.cc 8KB
postprocess.cc 7KB
preprocess_op.cc 6KB
preprocess_op.cc 6KB
main.cc 6KB
preprocess_op.cc 4KB
picodet_postprocess.cc 4KB
picodet_postprocess.cc 4KB
bottom_pool_op.cc 4KB
right_pool_op.cc 4KB
left_pool_op.cc 4KB
top_pool_op.cc 4KB
rbox_iou_op.cc 3KB
Native.cc 3KB
Utils.cc 3KB
utils.cc 2KB
utils.cc 2KB
sde_predictor.cc 2KB
predictor.cc 1KB
config_parser.cc 1KB
yaml-cpp.cmake 962B
yaml-cpp.cmake 962B
yaml-cpp.cmake 962B
main.cpp 11KB
main.cpp 11KB
main.cpp 10KB
lapjv.cpp 10KB
lapjv.cpp 9KB
picodet_mnn.cpp 7KB
picodet_openvino.cpp 7KB
picodet.cpp 6KB
rbox_iou_op.cu 4KB
bottom_pool_op.cu 4KB
right_pool_op.cu 4KB
left_pool_op.cu 4KB
top_pool_op.cu 4KB
.DS_Store 10KB
.DS_Store 6KB
football_keypoint.gif 29.74MB
football.gif 27.66MB
mot_pose_demo_640x360.gif 22MB
mot16_jde.gif 18.27MB
ppdet.gif 12.67MB
pptracking-demo.gif 9.35MB
fitness_demo.gif 6.78MB
ht_fairmot.gif 4.68MB
kitticars_fairmot.gif 2.48MB
.gitignore 2KB
.gitignore 38B
.gitignore 10B
build.gradle 5KB
build.gradle 558B
settings.gradle 15B
gradlew 5KB
gradlew 5KB
rbox_iou_op.h 10KB
trajectory.h 8KB
util.cu.h 7KB
trajectory.h 7KB
preprocess_op.h 5KB
preprocess_op.h 5KB
pipeline.h 5KB
preprocess_op.h 5KB
preprocess_op.h 5KB
keypoint_detector.h 4KB
Native.h 4KB
object_detector.h 4KB
jde_detector.h 4KB
Pipeline.h 4KB
config_parser.h 4KB
config_parser.h 4KB
predictor.h 4KB
sde_predictor.h 3KB
keypoint_detector.h 3KB
picodet.h 3KB
config_parser.h 3KB
共 1626 条
- 1
- 2
- 3
- 4
- 5
- 6
- 17
资源评论
机器学习的喵
- 粉丝: 2015
- 资源: 1784
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 国际象棋检测9-YOLO(v5至v11)、COCO、CreateML、Paligemma、TFRecord、VOC数据集合集.rar
- 2024年秋学季-C#课程的信息系统大作业winform
- 基于Spring Boot+Vue技术的湖南特产销售网站(编号:17755125).zip
- 基于Spring Boot的企业客源关系管理系统的设计与实现(编号:1778968).zip
- 基于spring boot的实验室开放管理系统_4ty8i0c9_203-wx.zip
- 基于Spring Boot的养老院管理系统的设计与实现_6575f5w2_223-wx(1).zip
- 基于Spring Boot的中药材管理系统(编号:25853136).zip
- 基于Spring Boot框架的网上蛋糕销售系统_30z8r428_231-wx.zip
- ZZU 面向对象Java实验报告
- 用python ollama qwen2.5 开发一个AI修仙游戏 MUD
- 基于Spring Cloud技术的智慧云停车场服务管理系统(编号:28065246).zip
- 基于spring mvc和mybatis的食品商城系统(编号:9025459).zip
- NET综合解决工具,windows平台必备
- 基于Spark的电影推荐系统源码(毕设)
- 明厨亮灶老鼠检测数据集:用于YOLO模型训练的高质量数据集
- 商城蛋糕数据库sql源码
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功