MobileNet详解

文章介绍了如何实现深度学习网络在移动设备和嵌入式设备上运行,重点讨论了DW卷积和MobileNet的两个版本。MobileNetv1利用DW卷积减少计算量和参数,但存在部分卷积核训练后无效的问题。MobileNetv2通过引入倒残差结构和LinearBottlenecks提升准确率并减小模型大小,其中倒残差结构使用ReLU6激活函数,而LinearBottlenecks在高维特征处理上有优势。
摘要由CSDN通过智能技术生成

实现了让深度学习网络在移动设备和嵌入式设备中运行

 亮点L:

a. DW卷积,大大减小了运算量和参数量

b .增加了超参数(人为自己设计的):

阿尔法:控制卷积层卷积核个数的超参数

阿尔法越小,计算量越小,参数越小,准确率越低

被他:控制输入图像大小 

被他越小,准确率越低,计算量越小,参数不变

DW卷积:

特点: 

每个卷积核深度都是1

每个卷积核只与输入特征矩阵的一个channel进行计算

矩阵深度1不会发生变化

DS卷积(深度可分的卷积操作)

 由两部分组成:DW卷积和PW卷积

pw卷积实际就是卷积核大小为1的普通卷积

计算量=卷积核的高度 * 卷积核的宽度 * 卷积核的通道个数 * 卷积核个数 * 输入特征矩阵的高度 * 输入特征矩阵的宽度(前提是步距为1)

MobileNet v1

 第一层卷积层:步距是2,卷积核大小是3*3,输入特征矩阵深度是3(rgb图像),卷积核个数是32

第二层:DW卷积层(卷积核深度为1),步距为1,卷积核大小3*3,卷积核个数是32

v1在使用过程中,很多人发现dw卷积的部分卷积核在训练完后会废掉,dw卷积核大部分参数等于0

v2网络(比v1准确率更高,模型更小)

 亮点:
a.倒残差结构

b.Linear Bottlenecks

倒残差结构

 残差结构中:

先降维,在卷积处理,再升维(两头大中间小)

使用relu激活函数

倒残差结构:

先升维,再dw卷积处理,再降维

使用relu6(relu函数的改进版)激活函数

 

 

Linear Bottlenecks

倒残差结构的最后一个1*1卷积层使用了线性激活函数,而不是relu激活函数

(relu对低维特征信息会造成从比较大的损失,而对高维特征信息造成的损失很小) 

 左图过程如右表

a.第一层卷积核个数为tk

b.第二层步距为s,矩阵高和宽缩小为1/s倍

 在v2中,并不是每个倒残差结构都有捷径分支的(当s=1且输入特征矩阵与输出特征矩阵的shape相同时,才有捷径分支,上图表示有误)

网络结构

 t:扩展倍率

c:输出特征矩阵的深度

n:倒残差结构的重复次数

s:步距(针对一系列倒残差结构第一层,其他均为1)

t=1的那个倒残差结构,没有使用升维的那个卷积层,因为他没有升维作用

最后一层是卷积层,而实际上就是一个全连接层,k是分类的类别个数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值