MobileNet系列V1/V2/V3网络结构

MobileNet V1

网络特点

MobileNet V1提出:
1.深度可分离卷积(Depthwise Separable Convolution),由深度卷积Depthwise(DW)和逐点卷积Pointwise(PW)构成;
2.模型压缩系数(调整通道数和分辨率)。

标准卷积和深度可分离卷积的区别如下:
输入特征图:DF x DF x M
卷积核:DK x DK
输出通道:N
————————————————————————————
标准卷积参数量:A = DK x DK x M x N
深度可分离卷积参数量:B = DK x DK x M + M x N
计算量缩减: B A B\over A AB = 1 N 1\over N N1 + 1 D k 2 1\over Dk^2 Dk21
————————————————————————————
标准卷积计算量:A = DK x DK x M x N x DF x DF
深度可分离卷积计算量:B = DK x DK x M x DF x DF + M x N x DF x DF
计算量缩减: B A B\over A AB = 1 N 1\over N N1 + 1 D k 2 1\over Dk^2 Dk21
一般卷积核采用3x3,而N>>9,因此深度可分离卷积的参数量和计算量都是标准卷积的1/8 - 1/9

在这里插入图片描述

网络结构

卷积块 = Conv2D + BN + relu6
深度可分离卷积块 = DepthwiseConv2D + BN + relu6 + Conv2D (pointwise_conv_filters, alpha调整通道数) + BN + relu6
在这里插入图片描述
relu6代码

def relu6(x):
    return K.relu(x, max_value=6)

模型压缩系数

宽度(通道)系数:
——计算量缩减 α \alpha α2
α \alpha α 一般取1,0.75,0.5,0.25
DK x DK x α \alpha αM x DF x DF + α \alpha αM x α \alpha αN x DF x DF

分辨率系数:
——计算量缩减 ρ \rho ρ2
DK x DK x α \alpha αM x ρ \rho ρDF x ρ \rho ρ DF + α \alpha αM x α \alpha αN x ρ \rho ρDF x ρ \rho ρDF

MobileNet V2

网络特点

MobileNet V2提出了 the inverted residual with linear bottleneck,线性瓶颈反残差结构。
扩张(1x1 conv) -> 抽取特征(3x3 depthwise)-> 压缩(1x1 conv)

和MobileNet V1网络区别如下:
相同点:都使用了Depthwise + Pointwise(1x1)结构。
不同点:输入增加Conv 1x1升维,输出增加Conv 1x1降维,而且不使用Relu6函数,保证特征不被破坏,输出的Relu6变为Linear。
先升维再降维是因为Depthwise不能改变channel,如果输入channel很低,则Depthwise就在低维提取特征,所以先升维,定义expansion=6来转换成高维空间。
替换Relu6为Linear是因为激活函数在高维空间能有效增加非线性,而在低维空间会破坏特征,不如线性效果好。
在这里插入图片描述
Inverted Residual和Resnet网络区别如下:
相同点:1x1——>3x3——>1x1、shortcut。
不同点:Resnet先降后升,MobileNet V2先升后降,且Conv变为Dwise结构。
在这里插入图片描述

网络结构

t = expansion,c = channel,n = repeated times,s = stride
在这里插入图片描述

MobileNet V3

针对计算资源,发布了MobileNetV3-Large和MobileNetV3-Small两种网络结构。

网络特点

MobileNet V3利用了以下思想:
1.MobileNet V1的depthwise separable convolutions;
2.MobileNet V2的the inverted residual with linear bottleneck;
3.Squeeze and excitation结构的轻量级注意力模型;
4.利用hard-swish代替swish激活函数。

网络结构

MobileNet-v2和MobileNet-v3残差块的不同:
在这里插入图片描述
MobileNet-v3相比V2,块中引入了注意力模块,代码如下:
Pool+FC+relu6+FC+h-swish

def squeeze(inputs):
    input_channels = int(inputs.shape[-1])
    x = GlobalAveragePooling2D()(inputs)
    x = Dense(int(input_channels/4))(x)
    x = Activation(relu6)(x)
    x = Dense(input_channels)(x)
    x = Activation(hard_swish)(x)
    x = Reshape((1, 1, input_channels))(x)
    x = Multiply()([inputs, x])
    return x

MobileNetV3-Large网络:
在这里插入图片描述
MobileNetV3-Small网络:
在这里插入图片描述

h-swish激活函数

swish(x) = x * σ \sigma σ(x)
在这里插入图片描述
以下是平滑版本的Sigmoid/Swish和Hard版本的Sigmoid/Swish对比:
在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值