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