论文笔记——ShuffleNet V2

会议:ECCV 2018

标题:《ShuffleNet V2: Practical Guidelines for Efficient CNN Architecture Design》

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

代码链接:暂无


主要贡献​​​​

  • 模型加速和压缩思想
  • ShuffleNet的升级

Introduction

       目前大部分的模型加速和压缩文章在对比加速效果时用的指标都是FLOPs(float-point operations),这个指标主要衡量的是卷积层的乘法操作。文章通过一系列的实验发现FLOPs并不能完全衡量模型速度。Fig.1中的(c)(d),相同MFLOPs的网络实际速度差别还是很大的。

 

为什么FLOPs相同的模型速度差别会那么大?(论文中做了四次实验)

  • 卷积层的输入输出特征通道数对MAC(memory access cost,内存访问消耗时间)的影响

结论1:卷积层的输入和输出特征通道数相等时,MAC最小,此时模型速度最快。

  • 卷积的group操作对MAC的影响

​​​​​​​结论2:过多的group操作会增大MAC,从而使模型速度变慢。

  • 模型设计的分支数量对模型速度的影响

​​​​​​​

​​​​​​​结论3:模型中的分支数量越少,模型速度越快。

  • element-wise(点积)操作对模型速度的影响

​​​​​​​

结论4:element-wise操作所带来的时间消耗远比在FLOPs上的体现的数值要多,因此要尽可能减少element-wise操作。depthwise convolution具有低FLOPs、高MAC的特点。

 

ShuffleNet v1ShuffleNet v2的构建块结构对比

主要设计思路:

  1. 结论1:增加了一个channel split操作;

  2. 结论2:取消了1*1卷积层中的group操作;

  3. 结论3:channel shuffle的操作移到了concat后面;

  4. 结论4:将element-wise add操作替换成concat。

 

ShuffleNet v2的具体网络结构示意图

       每个stage都是由Fig.3(c)(d)所示的构建块组成,构建块的具体数量对应下表中的Repeat列。

 

一些模型在速度、精度、FLOPs上的详细对比

       实验中不少结果都和前面的实验结论吻合,比如MobileNet v1速度较快,主要原因是因为简单的网络结构,没有太多复杂的支路结构。

                                       

阅读更多

没有更多推荐了,返回首页