ShuffleNet V2: Practical Guidelines for Efficient CNN Architecture Design

1、摘要

  当下神经网络架构设计主要以indirect metric,比如FLOPs,作为指导,但是direct metric,比如speed,也依赖于其他的因素,比如memory acccess cost,platform characters。因此,这篇文章不再局限于FLOPs的评估,而是在target platform上去评估直接的指标,并且通过一系列的控制实验,得出了几个高效网络设计的practical guidelines。

2、背景

  (1)Group convolution和depth-wise convolution是目前轻量化网络(Xception、MobileNet、MobileNetV2、ShuffleNet、CondenseNet等)的关键block。

  (2)为了度量计算复杂度,一个广泛使用的度量是浮点运算的数量,或FLOPs。然而,FLOPs是一个间接的衡量标准。它只是直接指标如speed、latency的一个近似反映,而不等效于它们。

    例如下图(c)所示,同等FLOPs下,速度上:ShuffleNet v2 > Xception > MobileNet v2 > ShuffleNet v1

  

    间接量度和直接量度的不一致主要来源于2个方面:访存开销和并行度。

  

  (3)第二,根据平台的不同,使用相同的FLOPs的操作可能会有不同的运行时间。比如,3*3卷积并不绝对地比1*1卷积慢9倍。

3、高效网络设计的实用指南

  G1:相等的通道宽度最小化内存访问开销(MAC)

猜你喜欢

转载自www.cnblogs.com/wt-seu/p/12586459.html