使用caffe训练自己的物体识别数据时,在solver.prototxt文件里配置训练过程参数,学习记录总结了需要配置的各个参数的作用如下:
net: "train_val.prototxt" #模型文件
test_iter: 1000 #test_iter = 测试样本总数/batch_size, 迭代test_iter次将全部测试样本执行一遍
test_interval: 1000 #测试间隔,每训练test_interval次进行一次测试
base_lr: 0.001 #基础学习率,在迭代过程中可对基础学习率进行调整,由调整策略lr_policy参数决定怎么调整
lr_policy: "step" #设置调整策略,"step"策略返回:base_lr * gamma ^ (floor(iter / stepsize)),iter表示当前迭代次数
gamma: 0.1
stepsize: 100000
display: 100 #每训练display次在屏幕打印一次结果
max_iter: 50000 #最大迭代次数,设置过小,会导致不收敛,精度低;设置过大,会导致震荡,浪费时间
momentum: 0.9 #上一次梯度更新的全重
weight_decay: 0.0005 #权重衰减项,防止过拟合的参数
snapshot: 1000 #设置训练snapshot次后进行保存训练得到的model和solver状态
snapshot_prefix: "log/caffe_alexnet_train" #保存model和solver状态的路径和文件开头
solver_mode: GPU #运行模式,GPU或者CPU