caffe入門應(yīng)用方法(二)——solver超參數(shù)配置文件
在文章caffe入門應(yīng)用方法(一)——網(wǎng)絡(luò)層參數(shù)配置解析中,主要描述了caffe層次模型的超參文件配置方法.本文,主要介紹solver超參數(shù)配置文件的方法.solver文件主要用于配置網(wǎng)絡(luò)訓(xùn)練迭代方法.
solver文件配置示例
net: "examples/mnist/lenet_train_test.prototxt"
test_iter: 100
test_interval: 500
base_lr: 0.01
momentum: 0.9
type: SGD
weight_decay: 0.0005
lr_policy: "inv"
gamma: 0.0001
power: 0.75
display: 100
max_iter: 20000
snapshot: 5000
snapshot_prefix: "examples/mnist/lenet"
solver_mode: CPU
其中,
- net: "examples/mnist/lenet_train_test.prototxt" #網(wǎng)絡(luò)位置
- train_net: "examples/hdf5_classification/logreg_auto_train.prototxt" #也可以分別設(shè)定train和test
- test_net: "examples/hdf5_classification/logreg_auto_test.prototxt"
- test_iter: 100 #迭代了多少個(gè)測試樣本呢? batch*test_iter 假設(shè)有5000個(gè)測試樣本瑰钮,一次測試想跑遍這5000個(gè)則需要設(shè)置test_iter×batch=5000
- test_interval: 500 #測試間隔。也就是每訓(xùn)練500次燃少,才進(jìn)行一次測試该默。
- base_lr: 0.01 #base_lr用于設(shè)置基礎(chǔ)學(xué)習(xí)率
- lr_policy: "inv" #學(xué)習(xí)率調(diào)整的策略
- fixed: 保持base_lr不變.
- step: 如果設(shè)置為step,則還需要設(shè)置一個(gè)stepsize, 返回 base_lr * gamma ^ (floor(iter / stepsize)),其中iter表示當(dāng)前的迭代次數(shù)
- exp: 返回base_lr * gamma ^ iter般贼, iter為當(dāng)前迭代次數(shù)
- inv: 如果設(shè)置為inv,還需要設(shè)置一個(gè)power, 返回base_lr * (1 + gamma * iter) ^ (- power)
- multistep: 如果設(shè)置為multistep,則還需要設(shè)置一個(gè)stepvalue瘸恼。這個(gè)參數(shù)和step很相似梧躺,step是均勻等間隔變化,而multistep則是根據(jù) stepvalue值變化
- poly: 學(xué)習(xí)率進(jìn)行多項(xiàng)式誤差, 返回 base_lr (1 - iter/max_iter) ^ (power)
- sigmoid: 學(xué)習(xí)率進(jìn)行sigmod衰減傲绣,返回 base_lr ( 1/(1 + exp(-gamma * (iter - stepsize))))
- momentum :0.9 #動(dòng)量
- display: 100 #每訓(xùn)練100次掠哥,在屏幕上顯示一次。如果設(shè)置為0秃诵,則不顯示续搀。
- max_iter: 20000 #最大迭代次數(shù),2W次就停止了
- snapshot: 5000 #快照菠净。將訓(xùn)練出來的model和solver狀態(tài)進(jìn)行保存禁舷,snapshot用于設(shè)置訓(xùn)練多少次后進(jìn)行保存
- snapshot_prefix: "examples/mnist/lenet" model保存路經(jīng)
- solver_mode: CPU #設(shè)置運(yùn)行模式。默認(rèn)為GPU,如果你沒有GPU,則需要改成CPU,否則會(huì)出錯(cuò)毅往。
caffe優(yōu)化函數(shù)
caffe提供了六種優(yōu)化算法來求解最優(yōu)參數(shù)牵咙,在solver配置文件中,通過設(shè)置type類型來選擇攀唯。
Stochastic Gradient Descent (type: "SGD"),
AdaDelta (type: "AdaDelta"),
Adaptive Gradient (type: "AdaGrad"),
Adam (type: "Adam"),
Nesterov’s Accelerated Gradient (type: "Nesterov") and
RMSprop (type: "RMSProp")