mobilenets

mobilenets

文章提出分离式卷积的概念,具体就是将标准卷积用depthwise convolution和1 × 1 pointwise convolution替代.

可分离卷积的原理

标准卷积

对于标准卷积,

输入feature map为DFDFM

输出feature map为DFDFN

结构图为:

mobilenets

则需要卷积核DKDKMN,卷积计算公式如下:

Gk,l,n=i,j,mKi,j,m,nFk+i1,l+j1,m

这样计算次数总共需要计算量为:
DKDKMNDFDF

分离式卷积:

结构图为:

mobilenets

每个input channel 一个滤波器,即有:

Gk,l,m=i,jKi,j,mFk+i1,l+j1,m

上式中,DKDKM为第m个滤波器的核函数,用于输入F的第m个通道的卷积,输出得到第m个通道的输出G,这样计算次数总共需要计算量为:DKDKMDFDF

depthwise convolution计算量减少了一半,但是他只是单个通道的滤波操作,没有结合不同通道的信息而创造新的特征,因此需要一个额外的层,以结合不同通道的滤波输出特征,我们采用1 × 1 pointwise convolution实现.

这样Depthwise separable convolutions的计算量为:

DKDKMDFDF+MNDFDF

计算量减少了DKDKMDFDF+MNDFDFDKDKMNDFDF=1N+1D2K

可分离卷积网络结构

网络结构图如下:

mobilenets

左图为标准卷积,并加上batchnorm,relu,右边为可分离卷积层,分别在depthwise conv 和1x1 conv后面加入batchnorm,relu.