Depthwise Separable Convolution(深度可分离卷积)是将传统卷积分成两步进行计算即Depthwise和Pointwise。可以简化参数量和计算量,通常应用在轻量化网络中。
1 Depthwise Convolution
Depthwise Conv和普通的卷积不同,Depthwise Conv的卷积核只有一个,其通道的数量和特征图的通道数量一致,特征图每个channel仅与卷积核的一个channel进行计算,一个通道数为\(C_1\)的特征图,就会有\(C_1\)深度的卷积核,经过计算过后,通道数不变,仍然是\(C_1\)个channels
2 Pointwise Convolution
pointwise conv和普通卷积计算过程相似,只不过卷积核是1×1的大小,每个卷积核的通道数和特征图相同,计算结果的通道数和卷积核的个数相同。
3 Depthwise Separable Convolution
对于\(C_1 \times H \times W\)特征图\(F_1\),通过一个\(C_1 \times k \times k\)的卷积核进行depthwise conv,得到\(C_1 \times H^{\prime} \times W^{\prime}\)大小的中间特征图\(F_2\)。然后通过\(C_2\)个\(C_1 \times 1 \times 1\)卷积核,进行pointwise conv,得到最终计算结果\(F_3\),尺寸是\(C_2 \times H^{\prime} \times W^{\prime}\)。
上述过程就是深度可分离卷积的计算过程,普通卷积里,滑动窗口计算和聚合是在一个卷积核内进行的,但是在深度可分离卷积中,滑动窗口计算和聚合操作分别由depthwise和pointwise执行。这样减轻了网络,减少了计算量。
4 参数数量
我们假设\(k=3\),\(C_{1}=3\),\(C_{2}=4\),如果是普通卷积,则参数数量是4x3x3x3=108。
若采用深度可分离卷积,depthwise conv的参数数量为3x3x3=27,pointwise conv的参数数量为1x1x3x4=12,总数量为39,参数数量为普通卷积的三分之一