轻量化神经网络 - ShuffleNet

172 阅读2分钟

1. ShuffleNet V1

论文:ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices

网址:arxiv.org/abs/1707.01…

提出了Channel Shuffle的思想,在Shuffle Unit中全是GConv和DWConv。

GConv虽然能够减少参数与计算量,但GConv中不同组之间信息没有交流。

在ResNeXt网络中,PWConv的计算量占据了全部计算量的93.4%93.4\%。使用的GConv的计算量是比较少的。

所以,在ShuffleNet V1中,作者将所有的升维和降维的1×11\times1的卷积全部换为了GConv。

图(b)为stride=1的情况,图(c)为stride=2的情况。

ShuffleNet V1网络结构


2. ShuffleNet V2

论文:ShuffleNet V2: Practical Guidelines for Efficient CNN Architecture Design

网址:arxiv.org/abs/1807.11…

补充:

FLOPS:每秒浮点运算次数,可以理解为计算的速度,是衡量硬件性能的一个指标。

FLOPs:浮点运算数,理解为计算量。可以用来衡量算法/模型的复杂度。(1GFLOPs = 10910^9FLOPs)

  • 在ShuffleNet V2论文中,作者提出,计算复杂度,不能只看FLOPs,还要参考其他的一些指标。(最近读的一篇论文:Run, Don’t Walk: Chasing Higher FLOPS for Faster Neural Networks指出提高网络速度,不仅要降低网络的FLOPs,同时要提升FLOPS,因此提出了一种新型的PConv,提出了一种新的网络FasterNet,论文网址:arxiv.org/abs/2303.03…

  • 作者提出了4条设计高效网络的准则。

  • 提出了新的block设计。

4条设计高效网络的准则

1.Equal channel width minimizes memory access cost(MAC)

当卷积层的输入特征矩阵与输出特征矩阵channel相等时,MAC最小(保持FLOPs不变时)

2.Excessive group convolution increase MAC

当GConv的groups增大时(保持FLOPs不变时),MAC也会增大。

3.Network fragmentation reduces degree of parallelism

网络设计的碎片化(分支)程度越高,速度越慢

虽然碎片化可以提高我们网络的准确率,但是同时也会降低网络的效率。

4.Element-wise operations are non-negligible

Element-wise操作带来的影响是不可忽略的。

Element-wise操作包括:ReLU、AddTensor(相加操作)、AddBias(使用偏执)等。这种操作的特点是,FLOPs很小,但是MAC很大。

根据4条准则,ShuffleNet对网络进行了更新。

(a)(b)为shufflenet V1,(c)(d)为ShuffleNet V2中stride分别为1和2的两种情况。

ShuffleNet V2网络结构