深度可分離卷積網絡


以[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個參數量,深度可分離卷積的方式大大減少了參數量.

總結一下就是:

  1. 現在深度方向對不同channel用不同卷積核做卷積.
  2. 對第一步得到的輸出用1x1的卷積核去做常規卷積.達到使用不同channel的數據的目的. 用1x1的卷積核的數量控制深度.

參考:https://yinguobing.com/separable-convolution/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM