depthwise conv 和 pointwise conv

轉自:https://blog.csdn.net/tintinetmilou/article/details/81607721

Depthwise(DW)卷積與Pointwise(PW)卷積,合起來被稱作Depthwise Separable Convolution(參見Google的Xception),該結構和常規卷積操作類似,可用來提取特徵,但相比於常規卷積操作,其參數量和運算成本較低。所以在一些輕量級網絡中會碰到這種結構如MobileNet。

常規卷積操作
對於一張5×5像素、三通道彩色輸入圖片(shape爲5×5×3)。經過3×3卷積核的卷積層(假設輸出通道數爲4,則卷積核shape爲3×3×3×4),最終輸出4個Feature Map,如果有same padding則尺寸與輸入層相同(5×5),如果沒有則爲尺寸變爲3×3。

這裏寫圖片描述


Depthwise Separable Convolution
Depthwise Separable Convolution是將一個完整的卷積運算分解爲兩步進行,即Depthwise Convolution與Pointwise Convolution。

Depthwise Convolution
不同於常規卷積操作,Depthwise Convolution的一個卷積核負責一個通道,一個通道只被一個卷積核卷積。上面所提到的常規卷積每個卷積核是同時操作輸入圖片的每個通道。
同樣是對於一張5×5像素、三通道彩色輸入圖片(shape爲5×5×3),Depthwise Convolution首先經過第一次卷積運算,不同於上面的常規卷積,DW完全是在二維平面內進行。卷積核的數量與上一層的通道數相同(通道和卷積核一一對應)。所以一個三通道的圖像經過運算後生成了3個Feature map(如果有same padding則尺寸與輸入層相同爲5×5),如下圖所示。

這裏寫圖片描述

Depthwise Convolution完成後的Feature map數量與輸入層的通道數相同,無法擴展Feature map。而且這種運算對輸入層的每個通道獨立進行卷積運算,沒有有效的利用不同通道在相同空間位置上的feature信息。因此需要Pointwise Convolution來將這些Feature map進行組合生成新的Feature map。

Pointwise Convolution
Pointwise Convolution的運算與常規卷積運算非常相似,它的卷積核的尺寸爲 1×1×M,M爲上一層的通道數。所以這裏的卷積運算會將上一步的map在深度方向上進行加權組合,生成新的Feature map。有幾個卷積核就有幾個輸出Feature map。如下圖所示。

 

這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章