1. ShuffleNet V1
论文:ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices
提出了``Channel Shuffle`的思想,在Shuffle Unit中全是GConv和DWConv。
GConv虽然能够减少参数与计算量,但GConv中不同组之间信息没有交流。
在ResNeXt网络中,PWConv的计算量占据了全部计算量的$93.4%$。使用的GConv的计算量是比较少的。
所以,在ShuffleNet V1中,作者将所有的升维和降维的$1\times1$的卷积全部换为了GConv。
图(b)为stride=1
的情况,图(c)为stride=2
的情况。
ShuffleNet V1网络结构
2. ShuffleNet V2
论文:ShuffleNet V2: Practical Guidelines for Efficient CNN Architecture Design
补充:
FLOPS:每秒浮点运算次数,可以理解为计算的速度,是衡量硬件性能的一个指标。
FLOPs:浮点运算数,理解为计算量。可以用来衡量算法/模型的复杂度。(1GFLOPs = $10^9$FLOPs)
- 在ShuffleNet V2论文中,作者提出,计算复杂度,不能只看FLOPs,还要参考其他的一些指标。(最近读的一篇论文:
Run, Don’t Walk: Chasing Higher FLOPS for Faster Neural Networks
指出提高网络速度,不仅要降低网络的FLOPs,同时要提升FLOPS,因此提出了一种新型的PConv,提出了一种新的网络FasterNet,论文网址:https://arxiv.org/abs/2303.03667)
-
作者提出了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网络结构
标签:GConv,网络,ShuffleNet,轻量化,MAC,CNN,FLOPs,V2 From: https://www.cnblogs.com/mango1698/p/17972412