對卷積層dilation膨脹的作用的理解,caffe-ssd dilation Hole演算法解析
阿新 • • 發佈:2019-01-10
下面是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了
- layer {
- name: "pool5" //和vgg16的差別,修改了輸出
- type: "Pooling"
- bottom: "conv5_3"
- top: "pool5"
- pooling_param { //注意這個pooling層,步長為1,pad為1那麼pool層保持原fmap不變,所以300*300的影象到這裡是19*19(300/16)
- pool: MAX
- kernel_size: 3
- stride: 1
- pad: 1
- }
- }
- layer {
- name: "fc6" //全連線層
- type: "Convolution"
- bottom: "pool5"
- top: "fc6"
- param {
- lr_mult: 1.0
- decay_mult: 1.0
- }
- param {
- lr_mult: 2.0
- decay_mult: 0.0
- }
- convolution_param {
- num_output: 1024
- pad: 6
- kernel_size: 3 //6×(3-1)+1=13,所以pad=6
- weight_filler {
- type: "xavier"
- }
- bias_filler {
- type: "constant"
- value: 0.0
- }
- dilation: 6 //膨脹係數 http://blog.csdn.net/jiongnima/article/details/69487519 這篇部落格講的很清楚,理解為放大,沒有的地方變成0
- }
- }