【论文阅读】ShuffleNet:An Extremely Efficient Convolutional Neural Network for Mobile Devices

ShuffleNet,channel shuffle

Posted by x-jeff on August 13, 2025

本文为原创文章,未经本人允许,禁止转载。转载请注明出处。

1.Introduction

提出了极具计算效率的CNN架构:ShuffleNet,专为计算能力非常有限的移动设备设计。该新架构采用了两种新操作:pointwise group convolution和channel shuffle,以在保证准确率的同时大幅降低计算成本。

2.Related Work

不再详述。

3.Approach

3.1.Channel Shuffle for Group Convolutions

CNN通常由重复的block组成,这些block具有相同的结构。其中,一些网络,比如Xception和ResNeXt,在block中引入了高效的深度分离卷积或分组卷积(group convolutions),以在性能和计算成本之间取得出色的平衡。然而,我们注意到,这两种设计并未充分考虑$1 \times 1$卷积(亦称pointwise convolutions),而$1\times 1$卷积需要相当高的计算复杂度。例如,在ResNeXt中,只有$3\times 3$卷积层使用了分组卷积。因此,在ResNeXt的每个残差单元中,pointwise convolutions占据了93.4%的乘加运算量(cardinality=32)。

这里用一张图简单解释下分组卷积:

为了解决这个问题,一个直接的方法就是在$1\times 1$卷积层上也使用通道稀疏连接,比如分组卷积。分组卷积可以显著降低计算成本,然而,如果多个分组卷积堆叠在一起,就会出现一个副作用:某个通道的输出仅来源于输入通道中的一小部分,如Fig1(a)所示,很明显,某个分组的输出只与该分组内的输入有关。这一特性阻碍了通道分组之间的信息流动。

Fig1展示的是两个分组卷积堆叠在一起的情况,GConv表示Group Conv。

因此,我们提出了channel shuffle,如Fig1(b)所示。其高效实现可用下图来表示:

channel shuffle是可微分的,这意味着它可以嵌入到网络结构中进行端到端的训练。

3.2.ShuffleNet Unit

利用channel shuffle,我们提出了一个专为小型网络设计的ShuffleNet unit。如Fig2所示,Fig2(a)就是一个常规的bottleneck unit,DWConv表示depthwise convolution。在Fig2(b)中,我们在第一个$1\times 1$分组卷积之后接了个channel shuffle,第二个$1\times 1$分组卷积是为了调整通道数以匹配shortcut path,在这里,为了简化,我们在第二个$1\times 1$分组卷积之后并没有接channel shuffle。注意,在Fig2(b)和Fig2(c)中,DWConv之后,只有BN,没有ReLU

由于引入了channel shuffle,ShuffleNet unit的计算非常高效。和ResNetResNeXt相比,一样的设置下,ShuffleNet的计算复杂度更低。

3.3.Network Architecture

ShuffleNet的整体框架见下:

我们使用缩放因子$s$来控制通道数量。将表1中的网络记为”ShuffleNet $1\times$”,使用”ShuffleNet $s\times$”表示将通道数量缩放$s$倍,对应的计算成本会是”ShuffleNet $1\times$”的大约$s^2$倍。

4.Experiments

我们在ImageNet 2012分类数据集上进行了评估。训练设置和超参基本和ResNeXt保持一致,只有两处不同:1)将weight decay设置为$4e-5$,使用线性学习率衰减策略(从0.5降到0);2)未使用过于激进的数据增强策略。用了4块GPU,batch size=1024,一共训练了$3\times 10^5$次迭代,大约用时1到2天。至于benchmark,我们在ImageNet验证集上比较了single crop top-1性能,即在$256\times$大小的输入图像的中心裁剪一个$224\times 224$大小的crop,以此来评估分类准确率。

4.1.Ablation Study

4.1.1.Pointwise Group Convolutions

4.1.2.Channel Shuffle vs. No Shuffle

4.2.Comparison with Other Structure Units

为了和其他结构单元公平比较,我们依照表1的网络结构,将Stage 2-4的ShuffleNet units替换为其他结构单元,并通过调整通道数量使计算成本基本保持不变。

4.3.Comparison with MobileNets and Other Frameworks

SE见文献:J. Hu, L. Shen, and G. Sun. Squeeze-and-excitation networks. arXiv preprint arXiv:1709.01507, 2017.。

4.4.Generalization Ability

4.5.Actual Speedup Evaluation

5.原文链接

👽ShuffleNet:An Extremely Efficient Convolutional Neural Network for Mobile Devices