《SELF-ADAPTIVE NETWORK PRUNING》论文笔记

参考代码:

1. 概述

导读:这篇文章提出了一种channel剪枝的算法,在网络中通过嵌入SPM(Saliency-and-Pruning Module )模块得到卷积过程中重要的channel,之后通过一个阈值得到一个二值标志序列,之后通过将其中为0的位置“置0”从而达到网络剪枝的目的。CNN中重要的channel是通过计算特征图自身的特性(文章中为均值)之后连接一个fc得到的,之后给定一个期待的计算量开销目标,之后在训练的过程中将网络现有的开销与期望的开销计算损失,从而约束CNN网络中的channel数量。

文章的作者在一些基于分类的任务中发现了如下的亮点规律:

  • 1)对于CNN网络中的每一层卷积其适用的剪裁比例是不一致的,因而使用固定比例的方式进行剪枝是次优的,应该以数据驱动;
  • 2)在CNN分类网络中其实卷积中只有很少的一部分channel对某一类别有较强的反应(特征图的统计意义上),那么这就说明其中是存在较大的冗余的,是存在剪枝的空间的;

上述的两点观察可以从下图看出:
在这里插入图片描述

2. 方法设计

2.1 网络结构

文章提出的剪枝整体pipline见下图所示:
在这里插入图片描述
在上图中文章通过在每个卷积层上添加SPM模块提取出显著性(重要)的channel:
s l ( x l − 1 ) = S a l i e n c y P r e d i c t i o n ( x l − 1 , W ) s^l(x^{l-1})=SaliencyPrediction(x^{l-1},W) sl(xl1)=SaliencyPrediction(xl1,W)
其中, x l − 1 x^{l-1} xl1是上一层卷积输出的特征图。之后将这些显著性channel(经过阈值)得到需要剪除的部分:
b l ( x l − 1 ) = B i n a r i z e ( x l − 1 ) b^l(x^{l-1})=Binarize(x^{l-1}) bl(xl1)=Binarize(xl1)
在得到上述的二值序列掩膜之后,便是与之前的重要性置信度组合起来,从而这一层的卷积输出描述为:
x l = s l ( x l − 1 ) ⋅ b l ( x l − 1 ) ⋅ B a t c h N o r m ( f l ∗ x l − 1 ) x^l=s^l(x^{l-1})\cdot b^l(x^{

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值