Abstract

神经网络的广泛应用伴随着计算量的增加和参数存储成本. 最近的研究工作在不损害原来准确度的基础上,通过剪枝和压缩不同层间的权重进行网络压缩. 然而,基于幅值的剪枝(magnitude-based pruning)仅能够减少全连接层的参数,而由于修剪网络中的不规则稀疏性,可能无法充分降低卷积层中的计算成本.

我们提出了一个加速的剪枝方法,即修剪那些被认为对输出准确度有很小影响的卷积核.该方法通过删除网络中的整个卷积核及其连接特征图,可显着降低计算成本. 与修剪权重相反,此方法不会导致稀疏连接模式. 因此,它不需要稀疏卷积库的支持,并且可以与现有的高效BLAS库一起用于密集矩阵乘法.

即使是简单的卷积核修剪技术, 在CIFAR-10上VGG-16的推理成本最多可降低34%; ResNet-110的推理成本最多可降低38%,同时通过重新训练网络来恢复接近原始精度.


3. PRUNING FILTERS AND FEATURE MAPS

如下图Figure 1所示, 输入特征图为x[i], 输出特征图为x[i+1], 3D卷积核F[i,j], 2D卷积核K. 

在进行卷积核剪枝时,即卷积核F[i,j]被修剪掉(F[i,j]=n[i]*k*k, 代表n[i]个通道的k*k卷积核被裁减), 这样导致输出特征图x[i+1]少一个通道, 这也同时导致下一个3D卷积核少一个通道.

在这一节中一共分为四个部分进行了讨论:

  1. 确定在单个层中修剪的卷积核
  2. 确定单层修剪时的敏感性
  3. 修剪多层卷积核
  4. 重新训练修剪的网络以保持准确性

3.1 确定在单个层中修剪的卷积核

文章使用 l1-norm决定卷积核的重要性,简单说就是将3D卷积核F[i,j] (n[i]个k*k卷积核, 其中n[i]为输入特征图的通道数)中的参数取绝对值并相加求和, 然后修剪掉和值最小的或者最小的m个3D卷积核.

下图是修剪流程:

3.2 确定单层修剪时的敏感性

这一节对VGG16在CIFAR10上的仿真结果进行分析.

如下图Figure 2(a)显示的是VGG16不同卷积层中每个3D卷积核的参数绝对值之和. 可以看到,浅层网络的值偏大且分布区间小,深层网络的值分布范围大.

如下图Figure 2(b)显示的是裁剪VGG16不同卷积层的比率增加时,分类准确度的变化情况. 可以看到,浅层网络只能裁剪小比率,深层网络可以裁剪较大比率(60%)而准确度保持不变.(Table 2也证实实际裁剪了深层的卷积核)

如下图Figure 2(c)显示的是将裁剪的VGG16网络re-train,裁剪深层网络较大比率时同样可以恢复到原来准确度!!

我的疑问: 其他神经网络在不同数据集上的统计结果是否和下图一致???


4. 实验

下图是总的实验结果:

在这一节中一共分为五个部分进行了实验分析:

  1. VGG-16 ON CIFAR-10
  2. RESNET-56/110 ON CIFAR-10
  3. RESNET-34 ON ILSVRC2012
  4. 与修剪随机卷积核和最大卷积核的比较

4.4 与修剪随机卷积核和最大卷积核的比较

将本文的方法与修剪随机卷积核和最大卷积核进行比较. 如上图8所示,在不同的修剪率下,对大多数网络层的修剪效果要优于修剪随机卷积核.  例如,对于所有层,当修剪率为90%时, 最小的卷积核修剪比随机过滤器修剪具有更好的精度.

l1范数最大的卷积核修剪的精度随修剪率的增加而迅速下降,这表明使用“ l1”范数较大卷积核的重要性.


Reference Paper: Pruning Filters for Efficient ConvNets

【神经网络压缩加速之剪枝二】Pruning Filters for Efficient ConvNets相关推荐

  1. 【模型压缩】通道剪枝《Pruning Filters For Efficient ConvNets》论文翻译

    论文题目:<Pruning Filters For Efficient ConvNets> 论文地址:https://arxiv.org/abs/1608.08710 主要思想: 这篇文章 ...

  2. 【模型压缩】通道剪枝--《Pruning Filters for Efficient ConvNets》

    论文题目:<Pruning Filters For Efficient ConvNets> 论文地址:https://arxiv.org/abs/1608.08710 1. 概述 由于CN ...

  3. 模型剪枝学习笔记--Pruning Filters for Efficient Convnets

    Pruning Filters for Efficient Convnets 是 ICLR 2017的一篇文章,属于filter pruning,论文链接https://arxiv.org/abs/1 ...

  4. 【PRUNING FILTERS FOR EFFICIENT CONVNETS】半译笔记

    一个还可以的中文博客:Pruning Filters For Efficient ConvNets论文解读 - 知乎 摘要 近期关于降低模型压力的方法包括在不降低原始精度的情况下修剪和压缩不同层的权重 ...

  5. Pruning Filters for Efficient ConvNets详解

    Pruning Filters for Efficient ConvNets 作者:弓 长 木 公 论文: https://arxiv.org/pdf/1608.08710.pdf github代码: ...

  6. 【神经网络压缩加速之剪枝一】Filter Pruning via Geometric Median for Deep Convolutional Neural Network Acceleration

    Abstract 之前的研究工作都是基于"较小范数不重要"的准则上裁剪神经网络中具有较小范数的卷积核.在这篇论文中,我们分析了基于范数准则并指出该准则的有效性依赖于两个要求,但这两 ...

  7. 论文笔记——PRUNING FILTERS FOR EFFICIENT CONVNETS

    论文地址:https://arxiv.org/abs/1608.08710 主要思想 这篇文章主要讲了对filters的裁剪,裁剪方法是计算L1范数,然后裁剪掉较少的,多少取决于加速比. 实现效果 V ...

  8. 【综述】闲话模型压缩之网络剪枝(Network Pruning)

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 来自 | CSDN 地址 | https://blog.csdn.net/jinz ...

  9. 深度神经网络压缩与加速总结

    深度神经网络压缩与加速综述 1. 深度神经网络压缩与加速的任务 2. 模型压缩与加速方法 (1) 参数剪枝 (2) 参数共享 (3) 低秩分解 (4) 紧性滤波设计 (5) 知识蒸馏 3. 深度神经网 ...

最新文章

  1. Spring基础16——使用FactoryBean来创建
  2. HDU1874(Dijstra算法)
  3. 几个WinCE开发的网址
  4. [云炬创业基础笔记]第二章创业者测试18
  5. Java-Calendar
  6. dm368ipnc 重写架构中的swosd 实现中文osd
  7. CF1110E-Magic Stones【结论题,差分】
  8. 冲刺阶段(二)第五天 5月16日
  9. C++ 字符串流stringstream(附蓝桥杯2018年第九届真题缩位求和题解)
  10. 热水器多长时间清理一次比较好?该怎么清理?
  11. python高阶函数_python_bomb----高阶函数
  12. 如何设置vs2005的环境变量
  13. Python列表的正序,逆序输出
  14. 软工+C(9): 助教指南
  15. STM8S003FP6 TIM4配置
  16. ICPC焦作站(E、F)+思维+树上dp
  17. Unity 3D模型展示框架篇之自由观察(Cinemachine)
  18. OpenStack+Ceph存储空间回收
  19. VMware 中CentOS 8设置固定IP同时连接内外网
  20. HDLC协议及PPP协议

热门文章

  1. Redis的Java客户端——SpringDataRedis、RedisTemplate、StringRedisTemplate
  2. IDEA导入的maven项目右键没有maven,窗口右侧没有maven选项
  3. pytorchOCR之目录层级结构说明
  4. 【JZ36 二叉搜索树与双向链表】
  5. java jframe中添加组件_在java中用JFrame类创建的框架【1】直接添加组件
  6. 摆脱“悬赏”束缚,知识交易平台朝电商领域进发
  7. 易基因:全基因组ChIP-seq分析揭示细菌转录因子PhoB的基因内结合位点|mBio
  8. GPU云主机配置内容的深度学习
  9. 50MHz生成400Hz详解
  10. python淘宝_Python模拟登录淘宝