MobileNet学习(一)——轻量级神经网络


暑假有个实验作业是行人检测,这个其实有现有的模型,coco就有一个官方训练出来的caffemodel,效果也是挺不错的,但老师希望我们自己搭网络进行实现,其中向我们推荐了轻量级神经网络MobileNet,但对此不是很了解。于是就开始去各种博客进行学习,以下是学习记录。
文末会附上学习时参考的博客链接。

MobileNet模型结构

深度可分离卷积

MobileNet是一种轻量级的神经网络,更适合用于移动端和嵌入式端深度学习应用,力争在cpu上也达到比较好的识别速度效果。
通常来说,标准的卷积过程也就是,一个m×m的卷积核在卷积的时候,对应图像区域中的所有通道均被同时考虑,但实际上,我们并不一定需要同时考虑区域和通道,也可以分开考虑。深度可分离卷积则提出了这种新的思路,对于不同的输入通道采取不同的卷积核进行卷积。而MobileNet模型则是基于深度可分离卷积的结构,它可以将标准卷积分解成一个深度卷积和一个点卷积(1*1卷积核)。
在这里插入图片描述
假设有N×H×W×C(N:样本数,H:高度,W:宽度,C:通道数)的输入,Depthwise过程是指将N×H×W×C的输入分为C组,然后每一组做3×3卷积,这样就相当于收集了每个通道的空间特征;随后,Pointwise过程对N×H×W×C的输入做k个普通的1×1卷积,这样就相当于收集了每个点的特征。Depthwise+Pointwise最终输出也就是N×H×W×k。
来个实际的例子:
假如说,输入通道为16,希望输出通道为32,那么,过程是,①用16个3×3大小的卷积核分别与输入的16通道的数据做卷积,这里的卷积核是1通道的,而输入数据的每个通道都用1个3×3的卷积核进行卷积,这样就得到了16个通道的特征图,在叠加16个特征图之前,②用32个1×1大小的卷积核(16通道)在这16个特征图进行卷积运算,将这16个通道的信息进行融合,也就是说,我们用了1×1的卷积核进行了不同通道见的信息融合。以上两个过程分别是Depthwise和Pointwise的。整个过程下来,一共使用了3×3×16+(1×1×16)×32=656个参数。而如果使用原来的标准卷积的话,一般的操作就是用32个3×3的卷积核来分别同输入数据卷积,并且得到的输出是只有一个通道的数据,那么一共就是(3×3×16)×32=4068个参数。
从上也可以看出,深度可分离卷积比标准卷积减少了所需要的参数,极大地减少了计算量,也没有怎么影响到准确率。
它有一个对应的计算量的公式,如果通过Depthwise+Pointwise的拆分,相当于将普通卷积的计算量压缩为:
在这里插入图片描述

模型结构

MobileNet

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值