深度可分离卷积Depthwise Separable Convolution
Standard Convolution 传统卷积
filter的大小可以自己定义,但是要根据输入的fearture map的通道channel来确定filter的通道数,进行Convolution之后就会得到一个
4
∗
4
4*4
4∗4的feature map。
当有
n
n
n个filter的时候,就会得到具有
n
n
n个通道数的
4
∗
4
4*4
4∗4大小的feature map。
此时,需要的参数量为:
3
∗
3
∗
2
∗
4
=
72
3*3*2*4=72
3∗3∗2∗4=72
深度可分离卷积
采用多个2D(单通道)的filter对输入的 feature map 进行Convolution运算(每一个单通道filter对输入的feature map的一个通道进行卷积运算)。这个filter的数量和输入 feature map的通道数是相同的。
用每一个filter去convolution其针对的feature map的某一通道的feature map
此时,经过分离卷积得到的新的feature map是没有联系的,因此需要通过再一步的逐点卷积Pointwise Convolution,将它们相互联系。
这一步的操作类似于普通的卷积操作,但是采用的filter的大小为
1
∗
1
1*1
1∗1,有
n
n
n个
1
∗
1
1*1
1∗1的filter,卷积就得到
n
n
n个通道的新feature map。经过两个步骤之后得到了与传统一步卷积之后的相似的feature map。
但是,经过深度可分离卷积之后的两个步骤之后,参数使用只有26个,极大的减少了网络的参数量。