为什么引入深度可分离卷积之后,这个网络就变得轻量化了。
来看一下它的参数量和计算量。
分析:标准卷积的乘法计算量,只看乘法,首先输出的feature map里面,每一个元素都代表了一次卷积,所以输出有多少个feature map元素,就对应了进行了多少次卷积,红色里面就是feature map的元素个数,再乘以一次卷积的乘法次数,一次卷积其实就是卷积核的长宽乘以卷积核的通道,卷积核的感受野(蓝色里面),所以这是标准卷积一次卷积的乘法计算量,而参数量就是卷积核的长宽乘通道,再乘以N个卷积核。
分析:再来看深度可分离卷积,包含depthwise卷积和pointwise卷积,先来看depthwise卷积,同样是输出的feature map个数,乘以一次卷积的乘法次数,现在卷积核变成了薄片片,所以一次卷积的乘法次数就是Dk乘Dk,没有通道方向了,输出的feature map元素个数是DF乘DF乘M,因为有M个卷积核,M个通道,每一个通道都生成是DF乘DF个长宽,这是depthwise卷积。
而pointwise卷积是输出的feature map元素个数乘以pointwise卷积一次1乘1卷积的乘法次数,一次卷积的乘法次数就是1乘1卷积核的通道数,也就是M。
再来看参数量,参数量就是每一个卷积核都是Dk乘Dk的,总共有M个卷积核,再加上1乘1卷积,乘以M个通道,N个卷积核。
之前标准卷积的参数量是Dk乘Dk乘M乘N,现在深度可分离卷积的参数量是Dk乘Dk乘M,再加上M乘N,就是之前标准卷积一个卷积核的参数量,和现在深度可分离卷积所有的卷积核的参数量是一致的。
所以深度可分离卷积可以把参数量缩减为原来的N分之一,N往往是很大的数,比如N是256、512
所以这里可以大大减少参数量和计算量。