模型优化-剪枝

参考文献: PRUNING FILTERS FOR EFFICIENT CONVNETS

剪枝的目的:

不降低正确率的基础上进行参数量的削减、正确率、高计算效率、小的网络大小(参数)、降低网络的推测时间。

量化:量化是对数据存储中的数据类型进行变化

蒸馏:蒸馏是迁移学习中的一种

减少参数的方法:

有从网络本身进行参数削减的如利用平均池化层、采用下采样缩小特征图的大小、或者采用一些相同感受野的缩小参数的结构如 1 3 1 结构

剪枝本生的工作方法:

1、通过某些度量值判读权重的重要性
2、或者通过判断某些神经元不需要在训练该方法只针对全连接层.

通过削减卷积层的计算量
1、近似计算、低秩乘积
2、基于FFT的卷积
3、winograd conv
4、二值化、标准化等

通过从训练完的网络移除冗余的特征图
1、利用掩布进行剪枝
2、根据较小激活的特征图
3、基于幅度对核窗进行剪枝

或者通过正则化的方法添加稀疏性、例如引入L1正则

修剪核窗和特征图:

原始情况

input: ni * hi * wi

output: (ni+1)*(hi+1)*(wi+1)

kernel: (ni+1)*k*k   一个kernel在一个通道使用

剪枝某层的核窗

计算量减少:

nik^2(hi+1)(wi+1)+(ni+2)*k^2(ni+2)*(wi+2)

剪枝流程:

 关于敏感度的分析:

敏感度是指整个层的斜率、而不是对应某个通道的核参的1范数

斜率大的层剪枝容易保持ACC、小的层比较敏感、剪枝之后不容易恢复ACC

对于敏感的层采取的方法是剪枝部分或者完全跳过

实际上就是越后面的层越敏感、因为关键特征已经筛选出来 所以进行裁剪会对正确率的影响巨大.

多层剪枝的方法

 

重新训练的方法:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值