論文閱讀筆記:Xception: Deep Learning with Depthwise Separable Convolutions

論文閱讀筆記:Xception: Deep Learning with Depthwise Separable Convolutions

論文下載地址:Xception: DeepLearning with Depthwise Separable Convolutions


本文主要包含如下內容:


核心思想


  這篇文章主要在 Inception V3 的基礎上提出了 Xception(Extreme Inception),基本思想就是設計了通道分離式卷積 depthwise separable convolution operation


網絡結構


   Inception 結構
  我們可以將上面網絡看作,把整個輸入做1*1卷積,然後切成三段,分別3*3卷積後相連,如下圖,兩種形式是等價的:
   Inception 結構
  現在我們想,如果不是分成三段,而是分成 5 段或者更多,那模型的表達能力是不是更強呢?於是我們就切更多段,切到不能再切了,正好是 Output channels 的數量(極限版本):
   Inception 結構
  於是,就有了深度卷積 depthwise convolution。文章中將 depthwise separable convolution 分成兩步,一步叫depthwise convolution,另一步是 pointwise convolution。深度卷積是對輸入的每一個 channel 獨立的用對應 channel 的卷積核去卷積,假設卷積核的 shape 是 [filter_height, filter_width, in_channels, channel_multiplier],那麼每個 in_channel 會輸出 channel_multiplier 那麼多個通道,最後的 feature map 就會有 in_channels * channel_multiplier 個通道了。原文在深度卷積後面又加了 pointwise convolution,這個 pointwise convolution 就是 1*1 的卷積,可以看做是對那麼多分離的通道做了個融合。
  

  Xception
  Xception 結構由36個卷積層組成網絡的特徵提取基礎。我們的評估實驗中只進行圖像分類,因此我們在卷積之後使用了邏輯迴歸層。可選的,也可以在邏輯迴歸層之前加入完全連接層。36個卷積層被分成14個模塊,除最後一個外,模塊間有線性殘差連接。
  depthwise convolution

  depthwise convolution


實驗結果


  精度較Inception V3有提高,ImageNET上的精度如下:
  
  Table2表示幾種網絡結構在JFT數據集上的對比。大數據上的提升會比Table1好一點。:
  


tensorflow實現


  參考博客

    #tensorflow 1.2.0 python 2.7
    tf.nn.depthwise_conv2d(input,filter,strides,padding,rate=None,name=None,data_format=None)
    #結果返回一個Tensor,shape爲[batch, out_height, out_width, in_channels * channel_multiplier],注意這裏輸出通道變成了in_channels * channel_multiplier
  • name:指定操作的名字
  • data_format:指定數據格式
  • input:指需要做卷積的輸入圖像,要求是一個4維Tensor,具有[batch, height, width, in_channels]這樣的shape,具體含義是[訓練時batch的圖片數量, 圖片高度, 圖片寬度, 圖像通道數]
  • filter:相當於CNN中的卷積核,要求是一個4維Tensor,具有[filter_height, filter_width, in_channels, channel_multiplier]這樣的shape,具體含義是[卷積核的高度,卷積核的寬度,輸入通道數,輸出卷積乘子],這裏第三維in_channels,就是參數input的第四維
  • strides:卷積的滑動步長。
  • padding:string類型的量,只能是”SAME”,”VALID”其中之一,這個值決定了不同邊緣填充方式。
  • rate:rate=1時,此時這個函數就變成了普通卷積,並非空洞卷積。

  空洞卷積atrous convolutions又名擴張卷積dilated convolutions,向卷積層引入了一個稱爲 “擴張率dilation rate”的新參數,該參數定義了卷積核處理數據時各值的間距。
  

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