189、YOLOv11 结构化剪枝实战三:不同剪枝率 0.3/0.5/0.7 的精度-速度-Params 曲线

189、YOLOv11 结构化剪枝实战三:不同剪枝率 0.3/0.5/0.7 的精度-速度-Params 曲线
189、YOLOv11 结构化剪枝实战三:不同剪枝率 0.3/0.5/0.7 的精度-速度-Params 曲线上周有个读者在群里发了个截图,YOLOv11s 剪枝到 0.5 后 mAP 掉了 12 个点,但 FLOPs 只降了 18%。我一看代码,他用的是全局随机剪枝,把 backbone 里那些 1x1 的 bottleneck 全给干掉了。这种坑我踩过三次,第一次在 YOLOv5 上,第二次在 YOLOv8 上,第三次……好吧,第三次还是没长记性。结构化剪枝不是简单地把权重置零,而是要把整个通道或者卷积核物理移除。今天这篇我们直接上不同剪枝率的对比实验,从 0.3 到 0.7,看看精度、速度、参数量这三者到底怎么 trade-off。剪枝策略的选择:别用 L1 范数排序很多人一上来就用 L1 范数对 BN 层的 gamma 排序,然后砍掉最小的。这个做法在分类网络上还行,但在 YOLO 这种检测模型上,你会发现剪掉 30% 后,小目标直接消失。我现在的做法是:基于梯度敏感度 + 层级稀疏度约束。具体来说,对每个 BN 层的 gamma,计算它在验证集上的梯度,然后乘以 gamma 的绝对值,得到一个“重要性分数”。这样那些虽然 gamma 小但梯度大的通道会被保留——它们可能是某些小目标检测的关键路径。# 计算通道重要性:梯度 * gamma 绝对值