轻量级网络结构

一、MobileNet

MobileNetV1

与VGG网络比较:

深度可分离卷积

        由深度卷积(depthwise convolution)和逐点卷积(pointwise convolution)组成。

如:输入通道M、输出通道N、卷积核K*K、输入特征图大小F*F ,(输出通道是卷积核个数)

          标准卷积计算量:M*N*K*K*F*F

          深度卷积计算量:M*K*K*F*F          (输出通道=输入通道=卷积核个数)

          逐点卷积计算量:   N*M*1*1*F*F        (正常卷积,卷积核为1)

          深度可分离卷积计算量:K*K*M*F*F+M*N*F*F

          计算比率:标准/深度分离

                (K*K*M*F*F+M*N*F*F)/(K*K*M*N*F*F)=(K*K+N)/(K*K*N)=1/N+1/(K*K)

        若卷积核K=3,则计算量降低9倍左右。

与VGG直筒型结构类似(将深度分离卷积模块替换为标准卷积)。

MobileNetV2

与mobilenetV1比较:

倒残差结构:Inverted Residuals

对比残差块,倒残差体现在中间深度分离层维度比较宽。先1*1卷积提升通道数,再深度分离卷积,最后1*1降低通道。使用 ReLU6 激活函数和线性激活函数。

 网络结构:

  • t是输入通道的倍增系数(即中间部分的通道数是输入通道数的多少倍)
  • n是该模块重复次数
  • c是输出通道数
  • s是该模块第一次重复时的stride(后面重复都是stride 1)

MobileNetV3

1、加入SE模块

在倒残差结构中加入SE结构

SE结构: 

输入特征图H*W*C,分别对每一通道做全局池化得到1*1*C个值,经过第一个全连接层(压缩r)得到1*1*C/r,经过第二个全连接层恢复1*1*C,再乘以原有的对应通道得到H*W*C。

2、更新激活函数

MobileNetV3-large:

 MobileNetV3-small

二、ShuffleNet 

ShuffleNetV1 

        主要思路是使用Group convolution和Channel shuffle改进ResNet。

下图(a)就是加入Depthwise的ResNet bottleneck结构,而(b)和(c)是加入Group convolution和Channel Shuffle的ShuffleNet的结构

 Group convolution( 组卷积):将输入通道划分为G组再卷积运算,计算量降低。

        输入通道M,输出通道N,特征图大小H*W,卷积核K*K

        标准计算量:M*N*H*W*K*K

        分组计算量:M*(N/G)*H*W*K*K

缺点:组与组之间没有信息交换,影响模型的表示能力。

Channel Shuffle(通道洗牌):打乱通道顺序,提升组间信息交换。

假设分为g组,每组通道数n=M/g

输入:W*H*M=g*n*H*W

经H*W平铺s,g*n*s沿着g和n轴转置,恢复。

ShuffleNetV2

对比V1,V2中添加了通道分离,其主要实现网络提速功能。

        (a) ShuffleNet v1 ,(b)ShuffleNet v1 降采样, (c)ShuffleNet v2,(d)ShuffleNet v2 降采样

(c)中ShuffleNet v2 模块先使用Channel Split操作分割通道。

 ShuffleNet v2网络中未使用GConv组卷积操作。

三、squeezenet

fire module:由squeeze 层和expand 层构成。

squeeze层:采用1*1卷积核,对输入通道数进行压缩。

expand层:由1*1和3*3的卷积层,对特征图融合。

        s1:表示squeeze 层中 1x1卷积核的数目。

        e1:表示expand 层中 1x1卷积核的数目。

        e3:则表示expand 层中 3x3卷积核的数目。

        在每个fire module内部s1要远小于e1 + e3,它们满足s1= SR * (e1+ e3)。而SR称为缩减系数,在这里只有0.375=s1/(e1+e3)=3/(4+4)。

四、Xception

        Xception是对Inception v3的改进,主要是采用depthwise separable convolution来替换原来Inception v3中的卷积操作。

五、GhostNet

         论文地址: https://arxiv.org/abs/1911.11907
                          https://github.com/huawei-noah/ghostnet.

        GhostNet是使用一些计算量更低(Cheap Operations)的操作去生成这些冗余的特征图,保证精度的情况下,减少模型的参数量与提高模型的执行速度。

Ghost Module:identity+线性运算Φ(指深度可分离卷积操作)。

特点:Ghost Module输出特征图数(b)=普通卷积输出(a),且计算量低。

首先使用少量卷积核(正常卷积核数的一半)运算获得的输出,然后分为两步操作:

        identity:上一步卷积输出。

        线性运算:上一步卷积输出的特征图,进行逐个深度分离卷积。

        最后两部分合并输出。

 假设有1个identity和s-1个ghost特征图(1个特征图有s-1个冗余),则FLOPs减少s倍。

Bottlenecks

将Ghost Module替换为Conv就是残差结构,类似于MobileNetV2。

 第一个Ghost Module增加通道数,第二个Ghost Module减少通道数。

网络结构:

         #exp表示expansion size,#out表示输出通道数,SE表示是否使用SE模块。

参考:

 MobilenetV1、V2、V3系列详解_Turned_MZ的博客-CSDN博客_mobilenetv1,v2,v3

MobileNetV1,V2,V3_David-Chow的博客-CSDN博客

《MobileNetV2: Inverted Residuals and Linear Bottlenecks》_胖胖大海的博客-CSDN博客

轻量化网络ShuffleNet MobileNet v1/v2/v3( MobileNet)学习笔记_just-solo的博客-CSDN博客_mobilenet shufflenet

ShuffNet v1 和 ShuffleNet v2 - 知乎

这就是神经网络 5:轻量化神经网络--MobileNet V1、MobileNet V2、ShuffleNet V1、ShuffleNet V2_yuanlulu的博客-CSDN博客_轻量化神经网络

轻量化网络ShuffleNet MobileNet v1/v2/v3( MobileNet)学习笔记_just-solo的博客-CSDN博客_mobilenet shufflenet

深度解读SqueezeNet网络结构_东城青年的博客-CSDN博客_squeezenet网络结构

超级详细易懂的GhostNet解析_猴子请来的救兵�的博客-CSDN博客_ghostnet

轻量级网络之GhostNet_球场书生的博客-CSDN博客_ghostnet

GhostNet 解读及代码实验(附代码、超参、日志和预训练模型)_TensorSense的博客-CSDN博客

猜你喜欢

转载自blog.csdn.net/m0_37264397/article/details/126312226
今日推荐