目录
一:深度可分离卷积
深度可分离卷积被提出于MobileNet中,其主要作用用于减少模型参数和运算量。
深度可分离卷积主要由两部分构成:DW卷积和PW卷积
网络中的亮点在于(1)DW卷积(大大的减少了运算量和参数数量)
(2)增加了参数α和β
传统卷积和DW卷积的对比图如下所示:
在DW卷积中每个卷积核的深度都是为1的,每个卷积核只负责与输入特征矩阵的一个channel进行卷积运算,然后再得到相应的输出矩阵的一个channel
深度可分离卷积完整示意图
图中的PW卷积其实和普通的卷积区别不大,只是将卷积核大小变为1
普通卷积和深度可分离卷积计算量的对比
其中代表的是输入特征矩阵的高和宽,
是卷积核的大小,M是输入特征矩阵的深度。然后N是输出特征矩阵的深度也对应着卷积核的个数。
所以普通卷积的计算量等于:卷积核的高*卷积核的宽*输入特征矩阵的深度*卷积核的个数N*输入特征矩阵的宽*输入特征矩阵的宽
那么深度可分离卷积的计算量就等于DW卷积和PW卷积两种卷积的和
对于DW卷积:卷积核的高*卷积核的宽*1(因为卷积核的深度为1)*输入特征矩阵的深度*输入特征矩阵的宽度*输入特征矩阵的高度
对于PW卷积:1*1(这里的卷积核大小为1)*输入特征矩阵的深度*卷积核的个数*输入特征矩阵的高度和宽度
二:Group CONV(组卷积)
组卷积和普通卷积对比示意图如下
假设每个卷积核的高和宽都是k,再假设输入特征矩阵的channel等于,卷积核个数等于n。普通卷积核所需要的参数数量为k*k*
*n。
而在组卷积中,在图中假设将输入特征矩阵的channel划分为两个组,然后再对每个组分别进行卷积操作。假设第一个组使用n/2个卷积核那么可以得到channel=n/2的特征矩阵,同理在第二个组中也使用n/2个卷积核,那么它的输出矩阵深度也是n/2。再将这两个特征矩阵的Contact拼接起来最终得到的特征矩阵也是n
参数量:假设卷积核的高和宽都是为k的,假设输入特征矩阵的channel等于分成了g组,使用了g/n个卷积核。并且是划分了g个组·所以还需要乘一个g。
当分组个数与输入特征矩阵的Channel是保持一致的,并且输出特征矩阵的channel也与输入特征矩阵的channel保持一致的话,此时组卷积就是DW卷积