深度可分离卷积网络
以[3,64,64]的input为例,假设我们要得到[4,64,64]的output.以3x3卷积核为例.
常规的卷及操作如下图所示:
参数量共计3 x 3 x 3 x 4 = 108.
深度可分离卷积可分为2个部分
- depthwise convolution
- pointwise convolution
depthwise convolution
常规卷积,卷积核是作用于所有的depth方向的. depthwise conv对不同channel用不同的卷积核做卷积
得到[3,64,64]的输出. 此时参数共计3 x 3 x 3 = 27.
pointwise convolution
depthwise卷积没有考虑到同一位置不同channel上的数据之间的关联.所以我们用一个1 x 1的卷积核对depthwise得到的[3,64,64]输出再做卷积.这里做的就是常规卷积. 得到[1,64,64]. 用4个这样的1x1卷积核去做常规卷积. 得到输出[4,64,64].
如下图所示:
这一步参数量为3 x 1 x 1 x 4 = 12.
深度可分离卷积一共耗费参数量为27 + 12 = 39个.
所以可以看出同样是得到[4,64,64]的feature map. 相比普通卷积的108个参数量,深度可分离卷积的方式大大减少了参数量.
总结一下就是:
- 现在深度方向对不同channel用不同卷积核做卷积.
- 对第一步得到的输出用1x1的卷积核去做常规卷积.达到使用不同channel的数据的目的. 用1x1的卷积核的数量控制深度.
作者:sdu20112013
如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!欢迎转载,转载请注明出处.