1. 程式人生 > >對卷積層dilation膨脹的作用的理解,caffe-ssd dilation Hole演算法解析

對卷積層dilation膨脹的作用的理解,caffe-ssd dilation Hole演算法解析

下面是caffe-ssd的vgg16輸出後的變化,減少了一個pooling,stride=1,然後下一層採用了 dilation方法,作用按上面部落格說是

既想利用已經訓練好的模型進行fine-tuning,又想改變網路結構得到更加dense的score map.

即想讓輸出的feature map更加的稠密,於是用了hole演算法,


下面一個圖能說明作用

這裡寫圖片描述

上圖的顏色其實有問題,應該這麼看,圖a的輸出0123對於圖b輸出的0246,然後再下一層(c)採用hole演算法,c的第三個輸出來自0,2,4這對應a中輸出的123,所以c層有a的下一層的所有內容,同時又增加到7個輸出(相比與原始a的下一層的2個輸出),所以輸出變得dense了

  1. layer {  
  2.   name: "pool5"   //和vgg16的差別,修改了輸出  
  3.   type: "Pooling"
  4.   bottom: "conv5_3"
  5.   top: "pool5"
  6.   pooling_param {    //注意這個pooling層,步長為1,pad為1那麼pool層保持原fmap不變,所以300*300的影象到這裡是19*19300/16)  
  7.     pool: MAX  
  8.     kernel_size: 3
  9.     stride: 1
  10.     pad: 1
  11.   }  
  12. }  
  13. layer {  
  14.   name: "fc6"   //全連線層  
  15.   type: "Convolution"
  16.   bottom: "pool5"
  17.   top: "fc6"
  18.   param {  
  19.     lr_mult: 1.0
  20.     decay_mult: 1.0
  21.   }  
  22.   param {  
  23.     lr_mult: 2.0
  24.     decay_mult: 0.0
  25.   }  
  26.   convolution_param {  
  27.     num_output: 1024
  28.     pad: 6
  29.     kernel_size: 3   //6×(3-1)+1=13,所以pad=6
  30.     weight_filler {  
  31.       type: "xavier"
  32.     }  
  33.     bias_filler {  
  34.       type: "constant"
  35.       value: 0.0
  36.     }  
  37.     dilation: 6   //膨脹係數 http://blog.csdn.net/jiongnima/article/details/69487519 這篇部落格講的很清楚,理解為放大,沒有的地方變成0
  38.   }