shuffleNetV2

版权声明:https://blog.csdn.net/z0n1l2 https://blog.csdn.net/z0n1l2/article/details/83962261

ShuffleNet V2: Practical Guidelines for Efficient CNN Architecture Design

Why

ResNet,DenseNet等网络已经把分类问题的精度推到一个很高的水平,而很多轻量级网络MobleNet, XceptionNet和ShuffleNet则在不牺牲太多精度的前提下,降低网络计算量,令深度学习网络可以运行在一些资源受限的平台上,比如ARM,FPGA。本文发现轻量级网络设计的指标FLOPs只能间接的描述网络复杂度,因为网路运行速度除了和浮点操作多少外,还和内存访问(MAC)和指令可并行度有关系,本文建议使用这些直接描述性能的指标指导轻量级网络的设计,另外要在多个平台下测试网络性能。下图是shuffleNetV2和其他几个轻量级网络在GPU和ARM两个平台上的对比,speed-accuracy都是state-of-art了
speed-accuracy

How

文中提出设计网络的四个指导原则

  1. 卷积层的输入通道数和输出通道数一致时,MAC最小,有利于提高速度
    G1

  2. 分组卷积不利于速度提升,卷积分组不易过大
    G2

  3. 网络分支/多个卷积穿行不利于并行化
    G3

  4. element-wise操作虽然FLOP很小,但是MAC很大,不利于速度提升
    element-wise包括Add/Relu/ResNet的short-cut等
    G4

最终基于shuffleNet,遵守上述四个原则设计了shuffleNetV2,以下是Block building
buildBlock

  • element-wise操作被channel-split和concat替换
  • 分组卷积GConv被取消(也是因为有了channel-split)
  • depthwise convolution保留

shuffleNetV2网络结构
shuffleNetV2

猜你喜欢

转载自blog.csdn.net/z0n1l2/article/details/83962261
2
>&2
α2
今日推荐