ShuffleNet V2: Practical Guidelines for Ecient CNN Architecture Design

https://blog.csdn.net/u014380165/article/details/81322175

https://blog.csdn.net/Chris_zhangrx/article/details/81348666

1.引言

  • 为了测量计算复杂性,广泛使用的度量是浮点运算的数量,或flops.但是,FLOP是间接度量。它是我们真正关心的直接度量的近似值,但通常不等同于速度或等待时间.FLOPs 并不能和 网络的计算速度成正比。(FLOPs:即乘法加法的数量。)
  • 间接度量FLOPs和直接度量speed主要有两个原因:


  • 上图就是表示在 4 种网络都有相近的 FLOPs 但是网络的速度在不同的平台上都不相同。所以仅通过 FLOPs 来衡量不是很准确.
      一个这样的因素是存储器访问成本(MAC)。在诸如组卷积的某些操作中,这种成本占运行时的很大一部分。它可能是具有强大计算能力的设备(例如GPU)的瓶颈。在网络架构设计中不应忽略此成本。
      还有一个就是网络的并行化程度,在相同的 FLOPs 下,网络并行化程度更高的网络速度更快。
      其次,具有相同FLOP的操作可能具有不同的运行时间,具体取决于平台。
  • 两个主要原则去设计一个更有效的网络:
      首先,应该使用直接度量(例如,速度)而不是间接度量(例如,FLOP)。
      其次,应在目标平台上评估此类指标。

2. 高效网络设计实用指南

  • G1:关于卷积层的输入输出特征通道数对MAC指标的影响。结论是卷积层的输入和输出特征通道数相等时MAC最小,此时模型速度最快
  • G2:关于卷积的group操作对MAC的影响。结论是过多的group操作会增大MAC,从而使模型速度变慢
    -

      分组数应该根据实际课题以及应用的平台谨慎选择。单纯的通过增加分组卷积来增加通道数从而增加精确度是一个不明智的选择。
  • G3:关于模型设计的分支数量对模型速度的影响。结论是模型中的分支数量越少,模型速度越快
  • G4:关于element-wise操作对模型速度的影响。结论是element-wise操作所带来的时间消耗远比在FLOPs上的体现的数值要多,因此要尽可能减少element-wise操作
      element-wise类型操作虽然FLOPs非常低,但是带来的时间消耗还是非常明显的。比如在Figure2中,作者对ShuffleNet v1和MobileNet v2的几种层操作的时间消耗做了分析,常用的FLOPs指标其实主要表示的是卷积层的操作,而element-wise操作虽然基本上不增加FLOPs,但是所带来的时间消耗占比却不可忽视
  • 结论
      (1) 卷积层使用相同的输入输出通道数
      (2) 意识到使用大的分组数所带来的坏处
      (3) 降低网络结构的离散程度(减少分支以及所包含的基本单元)
      (4) 减少 element-wise 操作

3. ShuffleNet V2


  
  
  
  

你可能感兴趣的:(ShuffleNet V2: Practical Guidelines for Ecient CNN Architecture Design)