深度可分离卷积主要分为两个部分:逐通道卷积(Depthwise Convolution)、逐点卷积(Pointwise Convolution)
1.逐通道卷积
含义:每个通道都被一个卷积核负责(一个卷积核仅对一个通道负责),即卷积核数量和特征图输入、输出通道数相同。
本质:在不同通道上分别独立地进行特征提取
缺点:缺少空间上的相关性
以Win=Hin=3,CN(输入通道数)=3,Kw=Kh=3,ON(输出通道数)=3,Wo=Ho=3
参数量:Kw*Kh*CN(ON) = 3x3x3=27
计算量:Kw*Kh*Wo*Ho*CN(ON)=3x3x3x3x3=243
2.逐点卷积
含义:使用一个1x1xM,M为输入的通道数,将上一步得到的特征图进行深度的加权组合产生新的特征图,点卷积的shape(1x1xMxN),N为输出的通道数
本质:空间上一致的不同通道的特征进行加权融合,最终在同一个通道得到整合的特征。
Win=Hin=3, Kh=Kw=1,M=3,N=4, Wo=Ho=3
参数量:Kh*Kw*M*N=1x1x3x4=12
计算量:Kh*Kw*M*N*Wo*Ho=1x1x3x4x3x3=108
最终:经过逐通道卷积和逐点卷积,得到与使用普通卷积一样的通道数、长宽的特征图
3.与普通卷积对比
设普通卷积为regular,参数量为P,计算量为F
P_r=108
F_r=972
深度可分离卷积:
P_dw=27+12=39
F_dw=243+108=351
可以发现,相同的输入,分别经过普通卷积和深度可分离卷积可以得到长宽相同、通道相同的特征图,但是深度可分离卷积的参数量、计算量远小于卷积的。
因此在计算量相同的情况下,使用深度可分离卷积可以将网络做的更深