论文来自旷视科技2017年的论文Channel Pruning for Accelerating Very Deep Neural Network

论文地址:https://arxiv.org/abs/1707.06168

代码地址:https://github.com/yihui-he/channel-pruning(还没跑过)

卷积通道剪枝

论文的主要思想是,通过最小化裁剪后特征图和裁剪前特征图之间的误差,尽可能的减少卷积核的通道数。

图1

图1中B、W和C分别为输入特征图、卷积核和输出特征图。c和n为输入特征图的通道数和输出特征图的通道数。

在卷积计算中,我们使用im2col来表示输入特征图、卷积核以及输出特征图,分别为:

的输入特征图,的卷积核,的输出特征图。

其中H和W分别为输出特征图的高和宽。

由矩阵乘法可知,卷积核中对应的行只和输入特征图矩阵中特定的列相乘,如图1所示,当我们裁剪了卷积核中的通道数后,相对应的输入特征图中的通道数亦可裁去,而输出当前输入特征图的对应上层的卷积核亦可裁去。

如何选取裁剪的通道,是本文的重点。

公式1中的Y为原始输出特征图,而后半部为裁剪后的输出特征图。我们将两者之间的距离作为误差,目的就是在尽可能剪枝的情况下,保持剪枝后特征图和原始特征图的差距最小。式中beta为0时,对应的输入层失效,达到剪枝的效果。公式中的限制项为beta的0范数,c'为一个超参数,表示我们希望剪枝的最小剪枝数。由于优化一个带0范数的损失函数是一个NP难问题,作者引入lasso来代替原始损失函数,尽可能的使beta向量稀疏。

优化过程可以分为两步:

1.  固定W参数,迭代的方法,使beta向量尽可能稀疏,达到预先设定的剪枝数。

2. 固定迭代好的beta,输入X变为X',X'即为beta迭代后与原始输入X的乘积。

多通道网络卷积通道剪枝

对于多通道网络,例如ResNet中的残差块,作者提出了一种解决方法。

block的输入

上图左中可知,残差块的输入和shortcut是相同的,若对残差块中第一个卷积操作进行剪枝,会影响到shortcut,因此作者提出了在残差块输入后添加一层sampler,进行通道采样,避免残差块中第一层卷积的剪枝对shortcut的影响。

block的输出

对于输出,原始残差块中,shortcut和残差块输出是相同通道数的,若对最后一层1x1卷积剪枝,会影响到残差块输出Y2和shortcut的Y1的组合。因此作者提出,最后一层卷积层拟合的特征图,从原始的输出特征图Y2,变为Y1-Y1'+Y2,Y1为未裁剪的残差块输入特征图,Y1'为残差块之前卷积裁剪后的特征图,Y2为残差块未裁剪的输出特征图。

这篇论文提出的通道裁剪在对指标影响较小的情况下,极大的提升了网络的性能。

在VGG中,达到4倍的速度情况下,仅仅增加了1%的top-5误差。

ResNet达到2倍速度的情况下,增加了1.4%的误差。

Faster-RCNN在达到2倍速度的情况下,仅降低了0.4mAP。

卷积神经网络通道剪枝裁剪相关推荐

  1. pytorch基于卷积层通道剪枝的方法

    pytorch基于卷积层通道剪枝的方法 原文:https://blog.csdn.net/yyqq7226741/article/details/78301231 本文基于文章:Pruning Con ...

  2. 神经网络 卷积神经网络,卷积神经网络训练太慢

    深度学习为什么加入卷积神经网络之后程序运行速度反而变慢了 谷歌人工智能写作项目:神经网络伪原创 卷积神经网络训练精度高,测试精度很低的原因 过拟合了,原因很多,解决方案也有很多写作猫.百度/谷歌搜索过 ...

  3. 常用的卷积神经网络-1-卷积和通道

    文章目录 CNN 1. CNN基本结构 2. 卷积和通道 2.1 分组卷积(Group Convolution) 2.2 Convolution VS Group Convolution 2.3 Gr ...

  4. 如何理解卷积神经网络中的通道(channel)

    在卷积神经网络中我们通常需要输入 in_channels 和 out_channels ,即输入通道数和输出通道数,它们代表什么意思呢?本文将给出一个形象的理解. 对于通道的理解可以参考下面的这篇文章 ...

  5. ECA-Net:深度卷积神经网络的高效通道注意力

    ECA-Net:深度卷积神经网络的高效通道注意力 1.什么是注意力机制? 2.简介 3.ECANet注意力模块 3.1 回顾SENet模块 3.2 ECANet模块 3.3 ECANet代码复现 4. ...

  6. 基于通道注意机制联合多尺度卷积神经网络的滚动轴承故障诊断

    一.数据来源 实验数据采用的是美国凯斯西储大学(CWRU)轴承数据中心的SKF型轴承的DE驱动端加速度数据,其中选用采样频率为48kHz,载荷为1hp的加速度数据进行实验分析,根据损伤部位的不同,分为 ...

  7. 网络通道数2的倍数_利用双通道卷积神经网络的图像超分辨率算法

    发布时间: 2016-05-25 摘要点击次数: 288 全文下载次数: 39 DOI: 10.11834/jig.20160503 2016 | Volumn 21 | Number 5 图像处理和 ...

  8. CNN笔记:通俗理解卷积神经网络--理解不同输入通道和卷积核通道关系(红色部分)

    1 前言 2012年我在北京组织过8期machine learning读书会,那时"机器学习"非常火,很多人都对其抱有巨大的热情.当我2013年再次来到北京时,有一个词似乎比&qu ...

  9. 卷积神经网络超详细介绍

    文章目录 1.卷积神经网络的概念 2. 发展过程 3.如何利用CNN实现图像识别的任务 4.CNN的特征 5.CNN的求解 6.卷积神经网络注意事项 7.CNN发展综合介绍 8.LeNet-5结构分析 ...

最新文章

  1. 技术图文:如何爬取一个地区的气象数据(下)?
  2. linux 如何以树形结构显示文件目录结构
  3. 第一周冲刺_周三总结
  4. 拼图项目:一个不完整的难题
  5. Python爬虫之Cookie和Session(转载)
  6. java binaryreader_Java字符流与字节流区别与用法分析
  7. mybatis mysql 中文乱码_Mybatis + Mysql 插入数据时中文乱码问题
  8. DataLoader 和 Dataset
  9. 高中计算机会考基本知识点,高中计算机会考基本知识点
  10. 中东国家以色列Avatrade和Rami Kalish的故事
  11. wps表格的宏被禁用问题
  12. 制作linux红帽光盘刻录,RedHat命令行刻录光盘
  13. ubuntu 关闭 笔记本键盘背景灯
  14. MES系统如何实现无纸化?(下)
  15. Masm for MAC安装教程+实例分析
  16. 知识点滴 - 项目阶段的定义
  17. BUUCTF-[QCTF2018]X-man-Keyword
  18. SaaS 软件开发为企业数字化转型赋能
  19. BZOJ3677: [Apio2014]连珠线
  20. SpringBoot入门第二天

热门文章

  1. 【GTX 10x0 Ti】此nvidia驱动程序与此windows版本不兼容
  2. 分享个人常用的十款软件免费下载
  3. 临床预测模型评鉴(PMID32982965)
  4. mysql保存测试数据_Mysql自动填充测试数据
  5. ValueError: insecure string pickle简单解决方案
  6. 【Linux】Linux哲学思想
  7. MYSQL常用基本SQL语句总结。
  8. 89c51按键计数器
  9. html恶意代码原理,HTML恶意代码
  10. iOS利用UIDocumentInteractionController和Quick Look打开或预览文档