ShuffleNet V1 的体系架构如何?
0 940
0

我知道ShuffleNet V1 是用于图像分类的轻量级卷积神经网络模型,但它具体是一个什么样的架构和工作原理呢?蹲蹲蹲答案🤞

收藏
2021-03-12 17:07 更新 阿托 •  17069
共 1 个回答
高赞 时间
0

用于组卷积的通道混合(Channel Shuffle)

  • 组卷积在AlexNet和ResNeXt中都有使用。

  • (a):没有通道混合(Channel Shuffle),每个输出通道仅与组中的输入通道相关。 此属性阻止通道组之间的信息流,并削弱了表示。

  • (b):如果允许组卷积从不同组中获取输入数据,则输入和输出通道将完全相关。

  • (c):(b)中的操作可以通过通道混合(Channel Shuffle)有效且优雅地实现。 假设有一个g组的卷积层,其输出具有g×n个通道; 我们首先将输出通道的尺寸调整为(g,n),进行转置,然后再变平,作为下一层的输入。

  • 通道混合(Channel Shuffle)也是可区分的,这意味着可以将其嵌入到网络结构中以进行端到端训练。

ShuffleNet Unit

  • (a)Bottleneck Unit:这是标准的resnet bottleneck单元,使用了深度卷积。(深度卷积在MobileNetV1中使用)先使用1×1然后3×3 DW,再使用1×1卷积,也可以将其视为MobileNetV2中所使用的bottleneck类型的深度可分离卷积。

  • (b)ShuffleNet Unit:第一个和第二个1×1卷积被组卷积代替。在第一个1×1卷积之后应用通道混合(Channel Shuffle)。

  • (c)步长=2的ShuffleNet Unit:应用步长时,在快捷路径上添加3×3的平均池。 同样,逐个元素的相加用信道级联替代,这使得可以用很少的额外计算成本来扩大信道尺寸。

  • 给定输入c×h×w和 bottleneck 通道m,ResNet单元需要hw(2cm +9m²)FLOP,ResNeXt需要hw(2cm +9m²/ g)FLOP,而ShuffleNet仅需要hw(2cm / g + 9m)FLOP 其中g是组卷积的数量。

  • 换句话说,在给定计算预算的情况下,ShuffleNet可以使用更宽的特征图。 我们发现这对于小型网络至关重要,因为小型网络通常没有足够的通道来处理信息。

ShuffleNet 体系架构

  • 该网络主要由ShuffleNet单元堆栈组成,分为三个阶段。

  • 每个ShuffleNet单元的 bottleneck 通道数设置为输出通道数的1/4。

  • 比例因子s应用于通道数。 上表中的网络表示为“ ShuffleNet 1×”,则“ ShuffleNet s×”表示将ShuffleNet 1×中的滤波器数量缩放s倍,因此总体复杂度约为ShuffleNet 1×s²倍。

收藏
2021-03-12 17:55 更新 正直的烤面包 •  4004