yolov8 剪枝 - DepGraph

论文链接:https://arxiv.org/abs/2407.04616

项目地址:Torch-Pruning/examples/yolov8 at master · VainF/Torch-Pruning · GitHub

我的项目地址:代码链接

2024年8月5 

5000张图片,2个类别。

yolov8n 初始:

185 layers, 3151904 parameters, 31936 gradients, 8.7 GFLOPs

 经过三次finetune后:

185 layers, 2327024 parameters, 31936 gradients, 6.6 GFLOPs

经过第四次fintune后:

185 layers, 2153353 parameters, 31936 gradients, 6.1 GFLOPs

经过15轮之后:

185 layers, 1029630 parameters, 0 gradients, 3.3 GFLOPs

随着训练次数的增加,mAP(50-95)剪枝后比剪枝变高了

all       4268      22050      0.994      0.992      0.995      0.874

代码链接:代码链接

2024年8月8

实际推理的时候内存基本没变,cpu降低了%3左右(NVIDIA Jetson Xavier NX),.pt文件推理速度降低了3ms.engine文件推理速度增加了3ms ,  但是内存增加了0.3G

这个剪枝没搞懂是啥情况,后续再看看论文

### YOLOv8 模型剪枝方法及实现 #### 剪枝的目的与意义 模型剪枝是一种有效的方式,用于减少神经网络中的冗余参数,从而降低计算复杂度并加速推理过程。对于YOLOv8这样的目标检测模型来说,通过合理地剪枝可以显著提升其部署效率。 #### YOLOv8 的结构特点及其对剪枝的影响 YOLOv8继承了YOLO系列一贯的设计理念,在保持高精度的同时追求更快的速度。该架构通常由多个卷积层组成,这些层次间存在复杂的连接关系[^1]。因此,在对其进行剪枝操作之前,理解每一部分的功能至关重要: - **骨干网(Backbone)**: 负责提取图像特征; - **颈部(Neck)**: 主要作用是对不同尺度下的特征图进行融合处理; - **头部(Head)**: 完成最终的目标定位和类别预测任务。 由于上述各组件的重要性各异,所以在实际应用中应谨慎选择哪些地方适合做减法优化。 #### 实现步骤概述 针对YOLOv8实施有效的剪枝策略一般遵循如下几个阶段的工作流[^2]: ##### 约束训练 (Constrained Training) 在此期间会对原始未修剪过的版本施加额外惩罚项来抑制那些不重要的权重更新幅度;这有助于后续更精准地区分重要性和可去除性的差异。 ##### 执行剪枝 (Pruning) 依据预设标准移除掉被认为贡献较小的部分单元或者通道。具体到YOLOv8上,则可能涉及到裁剪某些特定类型的卷积核以及它们所关联的激活函数输出维度等。 ##### 反馈调优 (Fine-tuning) 完成初步瘦身之后还需要经过一轮微调以恢复因删除节点而损失掉的一部分性能表现。此环节往往伴随着超参调整工作一起开展,比如适当增加迭代次数、改变学习率衰减速率等等措施都有助于获得更好的效果。 #### 技术细节探讨 当考虑具体的执行层面时,有几个方面值得特别关注: - **敏感性评估**:利用工具量化各个子模块对于整体识别能力影响程度大小的信息作为决策依据之一。 - **稀疏化诱导机制**:引入L1正则化或者其他形式的技术促使待选位置变得足够接近零值状态以便更容易被清理出去。 - **自动化框架支持**:借助开源社区提供的成熟解决方案简化开发难度,像PyTorch Pruning API或是TensorFlow Model Optimization Toolkit都能提供良好的接口服务给开发者使用[^3]. ```python import torch.nn.utils.prune as prune def apply_pruning(model, amount=0.2): for name, module in model.named_modules(): if isinstance(module, torch.nn.Conv2d): # 对Conv2d层进行剪枝 prune.l1_unstructured(module, 'weight', amount) apply_pruning(your_model_instance) ``` #### 结果验证与持续改进 最后一步就是全面测试新得到的小体积版YOLOv8能否满足预期设定的各项指标要求,并基于反馈不断迭代完善直至达到最优平衡点为止。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值