初入神经网络剪枝量化2(大白话)

本文介绍了两篇关于深度学习网络剪枝的论文,一种是基于几何中位数的FilterPruning,它通过寻找几何中心点附近的冗余卷积核实现加速;另一种是PruningFiltersforEfficientConvNets,利用权重绝对值和范式准则进行通道剪枝。讨论了剪枝的前提条件和不同剪枝策略,如独立剪枝与贪心剪枝,以及针对ResNet的特殊处理。
摘要由CSDN通过智能技术生成

一 Filter Pruning via Geometric Median for Deep Convolutional Networks Acceleration

论文链接: https://arxiv.org/pdf/1811.00250.pdf

        

        这篇论文,首先就是说现在一些基于权重的剪枝,基于通道的剪枝的一些算法,简单介绍。

        之后,提出了现在广泛使用的基于范式准则的剪枝方法的先决条件:(个人认为非常准确)

        1.  范式的标准差需要足够大, 这点很好理解,如果范式的标准差很小,就会导致很多通道其实是拥有相似的重要性,我们不知道该去减掉哪一层通道,并且如果夸张点说,如果标准差为0,相当于每个通道的重要性相同,这样就没有说可以去剪掉那层。

        2. 最小的范式值应当趋近于0, 这里的意思就是说,如果最小的范式值都是远大于0的数,那么意味着这个通道对于网络的输出也是非常重要的,就算剪掉最小的范式值的通道也会对网络的输出产生一定的损失。 (这点在上一篇讲到的network slimming中可以得到解决)

        之后,该论文就提出了自己的剪枝方法,基于几何中位数( Geometric Median) 

        几何中位数就是指,集合中其他点到这一点的距离的绝对值最小。这里就是说,我们选取每一层位于几何中心点的卷积核,从这个卷积核开始进行剪枝,我们首先找到距离几何中心的卷积核距离最小的卷积核,距离足够小,那么我们认为这个卷积核是近似接近我们的几何中心的卷积核,那么就认为这个卷积核的信息是冗余的,可以用其他卷积核来替代的,即可以剪去。

        之后就是作者做了一堆实验,来验证效果。

二  Pruning Filters for Efficient ConvNets

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

         这篇论文相对来说,比较简单。

        这里用到的就是,计算每层卷积核的权重绝对值的和,通过比较绝对值的核来判断该卷积核的重要性,值越小越不重要。计算出绝对值的和后,排序,选择阈值,剪枝。

        不过作者这里提出了两个剪枝得方法:

        1. 独立剪枝, 意思就是每层之间相互独立,互不影响。也就是当我们剪第i层卷积核,就会导致第i层的输出特征图的通道数减少,那么第i+1层的卷积核也应该剪去相应的通道,独立剪枝就是不考虑上一层剪枝的影响。

        2. 贪心剪枝, 也就是考虑上一层的输出对卷积核的影响,

也就是考虑不考虑黄点的计算量 。

文中还提出针对于resnet这种具有残差结构的网络应该如何剪,即认为残差块的通道重要性更高,故按照残差块的剪枝结果来算。

同时,还有两种训练方法:

        1. 修剪一次,再重新训练

        2. 迭代修剪,每次只剪一层,迭代训练再剪

        第一种方法,效果略差,但速度快,都二种效果更好,但需要更多的epoch。

如有错误,欢迎各位批评指正 !!

        

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值