caffe學習

訓練圖片1075張,測試圖片360


參數設置

net: "./image_train_val.prototxt"
test_iter: 271
test_interval: 100
base_lr: 0.01
display: 20
max_iter: 25000
lr_policy: "step"
gamma: 0.1
momentum: 0.9
weight_decay: 0.0005
power: 0.75
stepsize: 100
snapshot: 5000
snapshot_prefix: "snapshot"
solver_type: SGD
solver_mode: GPU


net:  網絡模型(訓練網絡模型、測試網絡模型)

test_iter:表示網絡的測試迭代次數。網絡一次迭代將一個batchSize的圖片進行測試,所以爲了能將validation集中所有圖片都測試一次。這個參數乘以TEST的batchSize應該等於validation集中圖片總數量。即test_iter*batchSize=測試圖片總數。

test_interval:測試間隔,表示網絡迭代(訓練即train)多少次進行一次測試。一次迭代即一個batchSize的圖片通過網絡正向傳播和反向傳播的整個過程。比如這裏設置的是224,即網絡每迭代224次即對網絡的準確率進行一次驗證。一般來說,我們需要將訓練集中所有圖片都跑一遍,再對網絡的準確率進行測試,整個參數乘以網絡data層(TRAIN)中batchSize參數應該等於訓練集中圖片總數量的倍數。即test_interval*batchSize=n*train_num(訓練圖片總數,n爲正整數)。

base_lr:表示網絡的基礎學習率。學習率過高可能導致loss持續86.33333,也可能導致loss無法收斂等等問題。過低的學習率會使網絡收斂慢,也有可能導致梯度損失。一般我們設置爲0.01。

display: 每多少次顯示一次。

max_iter: 網絡的最大迭代次數。訓練集中的圖片當然不能只訓練一次就算了,要反覆多次的進行訓練,所以這個參數應該要大一些。(與snapshot. test_iter. test_interval有關)

lr_policy: 學習率變化規律。

gamma: gamma是lr的衰減係數(學習率變化指數)。一般不改。

momentum: 動量,學習的參數。一般不改。

weight_decay: 權重衰減,學習的參數。一般不改。

stepsize: stepsize是lr的衰減步長(學習率變化頻率),每多少次學習率遞減。這裏是迭代100次學習率遞減。  

snapshot: 每多少次保存一次學習的結果。即caffemodel。(snapshot = test_interval * n, snapshot * m = max_iter. m,n均爲正整數)

solver_mode: 設置使用GPU還是CPU進行學習訓練。

solver_type: 優化算法的選擇,一共有六種可選:SGD、AdaDelta、AdaGrad、Adam、Nesterov和RMSProp。默認爲SGD。






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