【caffe c++】網絡配置文件說明之卷積層、池化層

下面代碼中沒註釋的部分可以看這篇:

【caffe C++】數據配置文件說明

layer {
  name: "data"  
  type: "Input"
  top: "data"
  input_param { shape: { dim: 64 dim: 1 dim: 28 dim: 28 } }
}

layer {
  name: "conv1"  #表示卷積層
  type: "Convolution"
  bottom: "data"	#前邊連着data層
  top: "conv1"		#輸出是卷積後的結果
  param {
    lr_mult: 1 		#lr_mult:學習率係數,最終的學習率是這個數乘以solver.prototxt配置文件中的base_lr。
			#設置爲0則表示數據不更新
  }
  param {		
    lr_mult: 2		#如果有兩個lr_mult,則第一個表示權值的學習率,第二個表示偏置值的學習率。
			#一般偏置項的學習率是權值學習率的兩倍
  }
  convolution_param {		#卷積參數
    num_output: 20		#卷積核(filter)的個數
    kernel_size: 5		#卷積核的大小即5*5×深度,其中深度取決於上一層的特徵圖個數,自動確定
    stride: 1			#卷積步長
    pad:			#擴充邊緣,默認是0即不擴充
    weight_filler {		
      type: "xavier"		#權值初始化。默認是"constant",值全爲0
				#很多時候我們採用"xavier"算法進行初始化,也可以設置爲"gaussian"
    }
    bias_filler {
      type: "constant"		#偏置值的初始化,一般設置爲"constant",即爲0
    }
  }
}

#卷基層輸出的特徵圖的規格
w1=(w0+2*pad-kernel_size)/stride+1;
h1=(h0+2*pad-kernel_size)/stride+1;


layer {
  name: "pool1"		#池化層
  type: "Pooling"
  bottom: "conv1"
  top: "pool1"
  pooling_param {
    pool: MAX		#池化方法,默認是max,目前可用的方法有MAX,AVE
    kernel_size: 2	#池化核的大小
    stride: 2		#池化的步長,默認是1,一般我們設置爲2,即不重疊
  }
}

其他網絡配置文件:

【caffe c++】網絡配置文件說明之激活函數

【caffe c++】網絡配置文件說明之全連接層

【caffe c++】網絡配置文件說明之reshape層

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