YOLOV3剪枝源码阅读---模型部署加速
YOLOV3剪枝 论文:Network Slimming-Learning Efficient Convolutional Networks through Network Slimming 剪枝项目参考 https://github.com/tanluren/yolov3-channel-and-layer-pruning 主要思路 1、利用batch normalization中的缩放因子γ 作为重要性因子,即γ越小,所对应的channel不太重要,就可以裁剪(pruning)。 2、约束γ的大小,在目标方程中增加一个关于γ的L1正则项,使其稀疏化,这样可以做到在训练中自动剪枝,这是以往模型压缩所不具备的。 剪枝过程 img 这里写图片描述 分为三部分,第一步,训练;第二步,剪枝;第三步,微调剪枝后的模型,循环执行 YOLOV3剪枝源码 1、正常剪枝 这部分分析来自该仓库 https://github.com/coldlarry/YOLOv3-complete-pruning ,但是更新的仓库也可以完成正常剪枝,prune.py。 使用了正常剪枝模式,不对short cut层(需要考虑add操作的维度一致问题)及上采样层(无BN)进行裁剪。 1、找到需要裁剪的BN层的对应的索引。 2、每次反向传播前,将L1正则产生的梯度添加到BN层的梯度中。 3、设置裁剪率进行裁剪。