深度学习【31】mobileNet

mobileNet出来很久了,这边主要是做个笔记,不然很快就忘记了。mobileNet的精髓是提出了depthwise卷积层。

标准的卷积层的参数个数是 D K D K M N (卷积核大小×卷积核大小×输入通道数×输出通道数,如卷积核是一个3*3,输入输出是256通道,则有3*3*256*256)。其计算量是:

D K D K M N D F D F

D F D F 是输入的feature map的大小。

depthwise卷积

首先我们看看标准卷积的计算过程(图画的很渣):
这里写图片描述
上图的卷积,输入通道为4,输出为2,因此有4*2个卷积核。in表示输入,out表示输出。我们可以看到每个输出都需要有4个卷积核分别在4张输入特征图进行卷积,然后相加得到。

而depthwise卷积过程如下:
这里写图片描述
输入特征图个数为2,输出特征图也为2,并且只需要两个卷积核。如果按照标准卷积,需要2*2=4个卷积核。

那么depthwise的卷积参数个数为 D K D K M ,计算量为:

D K D K M D F D F

由于depthwise卷积的输入输出通道必须一样,因此为了达到标准卷积的输入为M,输出为N的效果。论文在depthwise卷积后面加入了一个pointwise卷积,也就是卷积核为1*1的卷积。depthwise+pointwise=可分离卷积。这样可分离卷积的计算量为:
这里写图片描述

那么标准卷积与可分离卷积的计算比为:
这里写图片描述
可分离卷积大概比标准卷积少了8到9倍的计算量。

论文给出的标准卷积与可分离卷积的结构图:
这里写图片描述

整个mobilenet的结构:
这里写图片描述

论文后面加入了宽度因子和网络输入分辨率因子。

实验结果

imageNet
这里写图片描述

物体检测
这里写图片描述
模型小了很多啊,不管是在SSD还是RCNN,大概24M而已。

猜你喜欢

转载自blog.csdn.net/linmingan/article/details/79779124