Caffe各層參數(shù)解析

本文以O(shè)penPose的網(wǎng)絡(luò)結(jié)構(gòu)為例對各層參數(shù)進(jìn)行解析

訓(xùn)練的網(wǎng)絡(luò)文件


數(shù)據(jù)層

layer {
  name: "data"                          表示該層名字
  type: "CPMData"                       層有多種類型磅网,比如:Data、Convolution呼胚、Pooling犯犁,Data表示數(shù)據(jù)來源于Leveldb或者LMDB
  top: "data"                           每一層用top來輸出數(shù)據(jù)毕莱,只有top沒有bottom,則這一層只有輸出沒有輸入,反之亦然
  top: "label"                          如果有多個top和bottom嘀粱,表示有多個blobs數(shù)據(jù)的輸入輸出
  data_param {
    source: "/mnt/sdb/yangbin/COCO_kpt/lmdb"      包含數(shù)據(jù)庫的目錄名稱
    batch_size: 10                      每次處理數(shù)據(jù)的個數(shù)
    backend: LMDB                       選擇采用Leveldb還是LMDB嚣镜,默認(rèn)采用leveldb
  }
  cpm_transform_param {                 自定義層爬迟,之后會進(jìn)行補充
    stride: 8
    max_rotate_degree: 40
    visualize: false
    crop_size_x: 368
    crop_size_y: 368
    scale_prob: 1
    scale_min: 0.5
    scale_max: 1.1
    target_dist: 0.6
    center_perterb_max: 40
    do_clahe: false
    num_parts: 56
    np_in_lmdb: 17
  }
}

Eltwise層

layer {
  name: "weight_stage1_L2"               官方注釋:http://caffe.berkeleyvision.org/tutorial/layers/eltwise.html
  type: "Eltwise"                        按元素操作層
  bottom: "conv5_5_CPM_L2"
  bottom: "heat_weight"
  top: "weight_stage1_L2"
  eltwise_param {
    operation: PROD                      支持三種基本操作:1.PROD - 按元素乘積; 2.SUM - 按元素求和(默認(rèn)菊匿,若實現(xiàn)相減付呕,設(shè)置第一個coeff參數(shù)為1,第二個coeff參數(shù)為-1)跌捆; 3.MAX - 保存元素大者
  }
}

EuclideanLoss層

layer {
  name: "loss_stage1_L1"                 官方注釋:http://caffe.berkeleyvision.org/tutorial/layers/euclideanloss.html
  type: "EuclideanLoss"                  源碼分析:https://blog.csdn.net/seashell_9/article/details/68064294
  bottom: "weight_stage1_L1"
  bottom: "label_vec"
  top: "loss_stage1_L1"
  loss_weight: 1                         默認(rèn)為1
}

BatchNorm層

BN層的設(shè)定一般按照conv→BN→scale→relu的順序來形成一個block
https://www.cnblogs.com/makefile/p/batch-norm.html?utm_source=debugrun&utm_medium=referral

layer {
  name: "conv1/bn"
  type: "BatchNorm"
  bottom: "conv1"
  top: "conv1"                           #inplace
  param {                                #均值
    lr_mult: 0
    decay_mult: 0
  }                      
  param {                                
    lr_mult: 0                           #方差
    decay_mult: 0
  }
  param {                             
    lr_mult: 0                           #Scale
    decay_mult: 0
  }
  batch_norm_param {
    use_global_stats: true                #訓(xùn)練的時候要設(shè)置為false徽职,測試時設(shè)置為true
    eps: 1e-5                             #分母附加值,防止除以方差時出現(xiàn)除0操作佩厚,默認(rèn)為1e-5
  }
}

VGG19前十層

OpenPose采用VGG19模型的前十層網(wǎng)絡(luò)進(jìn)行初始化


卷積層

layer {
  name: "conv1_1"                        #表示該層的名稱
  type: "Convolution"                    #層類型
  bottom: "image"                        #輸入
  top: "conv1_1"                         #輸出
  param {                               
    lr_mult: 1.0                         #權(quán)值的學(xué)習(xí)率姆钉,最終的學(xué)習(xí)率是這個系數(shù)乘以solver.prototxt配置文件中的base_Ir
    decay_mult: 1                        #權(quán)值衰減系數(shù)
  }
  param {
    lr_mult: 2.0                         #如果有兩個Ir_mult,則第二個代表偏置項的學(xué)習(xí)率抄瓦,一般來說偏置項的學(xué)習(xí)率是權(quán)值學(xué)習(xí)率的兩倍
    decay_mult: 0
  }
  convolution_param {
    num_output: 64                       #卷積核的個數(shù)潮瓶,convolution_param主要用于設(shè)定卷積層的特有參數(shù)
    pad: 1
    kernel_size: 3
    weight_filler {                      #權(quán)值初始化
      type: "gaussian"                   #默認(rèn)為“constant”,值為0钙姊,“gaussian”使用高斯分布初始化權(quán)值
      std: 0.01                          #std是參數(shù)初始化成是高斯分布的標(biāo)準(zhǔn)差毯辅,std越小,證明高斯曲線越平滑煞额,各個權(quán)重值基本相同   
                                         詳見https://blog.csdn.net/kenny_star/article/details/69949846
    }
    bias_filler { 
      type: "constant"                   #偏置項的初始化悉罕,一般設(shè)置為“constant”,值全為0
    }
  }
}

激活層

layer {
  name: "relu1_1"                        對輸入數(shù)據(jù)進(jìn)行激活操作(一種函數(shù)變換)立镶,從bottom得到一個blob數(shù)據(jù)輸入壁袄,運算后,從top輸出一個blob數(shù)據(jù)
  type: "ReLU"                           在運算過程中媚媒,只對輸入數(shù)據(jù)逐個元素進(jìn)行函數(shù)變化嗜逻,不改變數(shù)據(jù)維度大小
  bottom: "conv1_1"                      輸入:n*c*h*w  輸出:n*c*h*w
  top: "conv1_1"                         Relu層支持in-place計算,因此Relu層的輸入輸出可以相同缭召,這意味著該層的輸入輸出可以共享同一塊內(nèi)存栈顷,減少內(nèi)存消耗逆日,其它層不支持
}

池化層

layer {
  name: "pool1_stage1"
  type: "Pooling"                        #層類型
  bottom: "conv1_2"
  top: "pool1_stage1"
  pooling_param {
    pool: MAX                            #池化方法,默認(rèn)為MAX萄凤,其他還有AVE室抽、STOCHASTIC(隨機采樣池化)
    kernel_size: 2
    stride: 2
  }
}

連接層

layer {
  name: "concat_stage2"                  #輸入:n_i * c_i * h * w  for each input blob i from 1 to K.
  type: "Concat"
  bottom: "conv5_5_CPM_L1"
  bottom: "conv5_5_CPM_L2"
  bottom: "conv4_4_CPM"
  top: "concat_stage2"
  concat_param {                         https://blog.csdn.net/u012426298/article/details/80743284
    axis: 1                              if axis = 0: (n_1 + n_2 + ... + n_K) * c_1 * h * w, and all input c_i should be the same
                                         if axis = 1: n_1 * (c_1 + c_2 + ... + c_K) * h * w, and all input n_i should be the same
  }
}

Scale層

https://blog.csdn.net/zxyhhjs2017/article/details/85265921

Reshape層

https://www.cnblogs.com/rainsoul/p/8321195.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市靡努,隨后出現(xiàn)的幾起案子坪圾,更是在濱河造成了極大的恐慌,老刑警劉巖惑朦,帶你破解...
    沈念sama閱讀 216,744評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件兽泄,死亡現(xiàn)場離奇詭異,居然都是意外死亡漾月,警方通過查閱死者的電腦和手機病梢,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,505評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來梁肿,“玉大人蜓陌,你說我怎么就攤上這事》悦铮” “怎么了钮热?”我有些...
    開封第一講書人閱讀 163,105評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長哥纫。 經(jīng)常有香客問我霉旗,道長痴奏,這世上最難降的妖魔是什么蛀骇? 我笑而不...
    開封第一講書人閱讀 58,242評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮读拆,結(jié)果婚禮上擅憔,老公的妹妹穿的比我還像新娘。我一直安慰自己檐晕,他們只是感情好暑诸,可當(dāng)我...
    茶點故事閱讀 67,269評論 6 389
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著辟灰,像睡著了一般个榕。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上芥喇,一...
    開封第一講書人閱讀 51,215評論 1 299
  • 那天西采,我揣著相機與錄音,去河邊找鬼继控。 笑死械馆,一個胖子當(dāng)著我的面吹牛胖眷,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播霹崎,決...
    沈念sama閱讀 40,096評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼珊搀,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了尾菇?” 一聲冷哼從身側(cè)響起境析,我...
    開封第一講書人閱讀 38,939評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎错沽,沒想到半個月后簿晓,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,354評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡千埃,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,573評論 2 333
  • 正文 我和宋清朗相戀三年憔儿,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片放可。...
    茶點故事閱讀 39,745評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡谒臼,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出耀里,到底是詐尸還是另有隱情蜈缤,我是刑警寧澤,帶...
    沈念sama閱讀 35,448評論 5 344
  • 正文 年R本政府宣布冯挎,位于F島的核電站底哥,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏房官。R本人自食惡果不足惜趾徽,卻給世界環(huán)境...
    茶點故事閱讀 41,048評論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望翰守。 院中可真熱鬧孵奶,春花似錦、人聲如沸蜡峰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,683評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽湿颅。三九已至载绿,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間油航,已是汗流浹背崭庸。 一陣腳步聲響...
    開封第一講書人閱讀 32,838評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人冀自。 一個月前我還...
    沈念sama閱讀 47,776評論 2 369
  • 正文 我出身青樓揉稚,卻偏偏與公主長得像,于是被迫代替她去往敵國和親熬粗。 傳聞我的和親對象是個殘疾皇子搀玖,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,652評論 2 354

推薦閱讀更多精彩內(nèi)容