论文阅读【模型剪枝(二)】

1. Learning Efficient Convolutional Networks through Network Slimming

论文地址:https://arxiv.org/abs/1708.06519
论文代码:https://github.com/talebolano/yolov3-network-slimming
博主运行sparsity_train.py 里面几处错误,稍加修改补充下可以运行。


神经网络模型虽然具有很强处理能力,但是其消耗的存储资源非常大,以ResNet-152来说,该网络的参数超过了60亿,需要200亿次的浮点运算[float-point-operations (FLOPs)],这就对应用在移动端,可穿戴设备和嵌入式物联网有很大难度,其不能负担如此庞大的存储资源和网络计算量。

文中指出限制模型部署硬件的主要问题是:

1.模型的大小,一般在300MB左右;
2.模型训练时的参数存储消耗, gpu就是运行占用显存
3.大量的浮点数计算,卷积运算导致手机端处理一张图可能需要几分钟

作者选用通道裁剪的原因如上篇论文一样,相比其他方法(包括低秩近似、网络量化和二值化、权值剪枝[、动态推理等)就是很高效,模型压缩的小。稀疏化操作适用于硬件又需要特定的存储方式,这不方便。如图看下本文简洁明了的操作:
在这里插入图片描述
这篇论文核心就是通过给BN层的缩放因子(scaling factors)进行L1正则化,将缩放因子稀疏化为0,BN每一个缩放因子对应前一层卷积层响应,如果某一卷积层通道对应的缩放因子为0,则该通道就可以剪枝掉 了。这个剪枝比例可以自己设置,剪枝之后错误率会有所降低,文章说可以通过fine-tune来得到补偿。缺点是全靠试,一般10%-30%,40%-60%的实验结果也ok,按照作者的意思。


文中更新总的损失函数为:
在这里插入图片描述
(x, y)表示输入和标签值,W表示训练权重、第一个求和对应正常训练的CNN的损失函数, g(·)是一个缩放因子稀疏通道的影响惩罚项, λ为平衡因子。 r缩放因子采用BN层的缩放因子:令g(r)=|r|
在这里插入图片描述

下图是训练方法:先训练稀疏通道—>通过比例因子剪枝------>微调之后训练------->更紧凑的模型
在这里插入图片描述
再没了,就这一个公式,文中算法简单暴力。。。。
测试结果如下图:作者裁剪比例最高70%
在这里插入图片描述
浮点运算量减少如图:
在这里插入图片描述
这个 调节稀疏化参数 λ \lambda λ和剪枝百分比结果图
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值