caffe 中的一些参数介绍
轉(zhuǎn)自:http://blog.csdn.net/cyh_24/article/details/51537709
solver.prototxt
net: "models/bvlc_alexnet/train_val.prototxt" test_iter: 1000 # test_interval: 1000 # base_lr: 0.01 # 開始的學(xué)習(xí)率 lr_policy: "step" # 學(xué)習(xí)率的drop是以gamma在每一次迭代中 gamma: 0.1 stepsize: 100000 # 每stepsize的迭代降低學(xué)習(xí)率:乘以gamma display: 20 # 沒display次打印顯示loss max_iter: 450000 # train 最大迭代max_iter momentum: 0.9 # weight_decay: 0.0005 # snapshot: 10000 # 沒迭代snapshot次,保存一次快照 snapshot_prefix: "models/bvlc_reference_caffenet/caffenet_train" solver_mode: GPU # 使用的模式是GPU-
test_iter
在測試的時候,需要迭代的次數(shù),即test_iter* batchsize(測試集的)=測試集的大小,測試集的 batchsize可以在prototx文件里設(shè)置。 -
test_interval
訓(xùn)練的時候,每迭代test_interval次就進(jìn)行一次測試。 -
momentum
靈感來自于牛頓第一定律,基本思路是為尋優(yōu)加入了“慣性”的影響,這樣一來,當(dāng)誤差曲面中存在平坦區(qū)的時候,SGD可以更快的速度學(xué)習(xí)。 -
wi←m?wi?η?E?wi
train_val.prototxt
layer { # 數(shù)據(jù)層name: "data"type: "Data"top: "data" top: "label" include { phase: TRAIN # 表明這是在訓(xùn)練階段才包括進(jìn)去 } transform_param { # 對數(shù)據(jù)進(jìn)行預(yù)處理 mirror: true # 是否做鏡像 crop_size: 227 # 減去均值文件 mean_file: "data/ilsvrc12/imagenet_mean.binaryproto" } data_param { # 設(shè)定數(shù)據(jù)的來源 source: "examples/imagenet/ilsvrc12_train_lmdb" batch_size: 256 backend: LMDB } }layer {name: "data" type: "Data" top: "data" top: "label" include { phase: TEST # 測試階段 } transform_param { mirror: false # 是否做鏡像 crop_size: 227 # 減去均值文件 mean_file: "data/ilsvrc12/imagenet_mean.binaryproto" } data_param { source: "examples/imagenet/ilsvrc12_val_lmdb" batch_size: 50 backend: LMDB } }
-
lr_mult
學(xué)習(xí)率,但是最終的學(xué)習(xí)率需要乘以 solver.prototxt 配置文件中的 base_lr .如果有兩個 lr_mult, 則第一個表示 weight 的學(xué)習(xí)率,第二個表示 bias 的學(xué)習(xí)率
一般 bias 的學(xué)習(xí)率是 weight 學(xué)習(xí)率的2倍’ -
decay_mult
權(quán)值衰減,為了避免模型的over-fitting,需要對cost function加入規(guī)范項。 -
wi←wi?η?E?wi?ηλwi -
num_output
卷積核(filter)的個數(shù) -
kernel_size
卷積核的大小。如果卷積核的長和寬不等,需要用 kernel_h 和 kernel_w 分別設(shè)定
-
stride
卷積核的步長,默認(rèn)為1。也可以用stride_h和stride_w來設(shè)置。 -
pad
擴(kuò)充邊緣,默認(rèn)為0,不擴(kuò)充。擴(kuò)充的時候是左右、上下對稱的,比如卷積核的大小為5*5,那么pad設(shè)置為2,則四個邊緣都擴(kuò)充2個像素,即寬度和高度都擴(kuò)充了4個像素,這樣卷積運(yùn)算之后的特征圖就不會變小。
也可以通過pad_h和pad_w來分別設(shè)定。 -
weight_filler
權(quán)值初始化。 默認(rèn)為“constant”,值全為0.
很多時候我們用”xavier”算法來進(jìn)行初始化,也可以設(shè)置為”gaussian”
- bias_filler
偏置項的初始化。一般設(shè)置為”constant”, 值全為0。
bias_filler {type: "constant" value: 0 }-
bias_term
是否開啟偏置項,默認(rèn)為true, 開啟
-
group
分組,默認(rèn)為1組。如果大于1,我們限制卷積的連接操作在一個子集內(nèi)。
卷積分組可以減少網(wǎng)絡(luò)的參數(shù),至于是否還有其他的作用就不清楚了。每個input是需要和每一個kernel都進(jìn)行連接的,但是由于分組的原因其只是與部分的kernel進(jìn)行連接的
如: 我們根據(jù)圖像的通道來分組,那么第i個輸出分組只能與第i個輸入分組進(jìn)行連接。 -
pool
池化方法,默認(rèn)為MAX。目前可用的方法有 MAX, AVE, 或 STOCHASTIC -
dropout_ratio
丟棄數(shù)據(jù)的概率
轉(zhuǎn)載于:https://www.cnblogs.com/Allen-rg/p/5822550.html
總結(jié)
以上是生活随笔為你收集整理的caffe 中的一些参数介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 夸1万台格力空调仅3台维修后!董明珠对自
- 下一篇: 【域控管理】父域的搭建