轻量化CNN网络 - ShuffleNet

文章目录

    • 1. ShuffleNet V1
    • 2. ShuffleNet V2

1. ShuffleNet V1

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

网址:https://arxiv.org/abs/1707.01083

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

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

轻量化CNN网络 - ShuffleNet_第1张图片

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

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

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

轻量化CNN网络 - ShuffleNet_第2张图片

ShuffleNet V1网络结构

轻量化CNN网络 - ShuffleNet_第3张图片


2. ShuffleNet V2

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

网址:https://arxiv.org/abs/1807.11164

补充:

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

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

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

轻量化CNN网络 - ShuffleNet_第4张图片

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

  • 提出了新的block设计。

4条设计高效网络的准则

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

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

轻量化CNN网络 - ShuffleNet_第5张图片

2.Excessive group convolution increase MAC

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

在这里插入图片描述

3.Network fragmentation reduces degree of parallelism

网络设计的碎片化(分支)程度越高,速度越慢
轻量化CNN网络 - ShuffleNet_第6张图片

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

4.Element-wise operations are non-negligible

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

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

根据4条准则,ShuffleNet对网络进行了更新。
轻量化CNN网络 - ShuffleNet_第7张图片

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

ShuffleNet V2网络结构

轻量化CNN网络 - ShuffleNet_第8张图片

你可能感兴趣的:(cnn,人工智能,深度学习,神经网络)