solver是caffe的核心,协调这整个模型的运作,在深度学习中,往往损失函数是非凸的,没有解析解,我们需要通过优化方法来求解,solver的作用就是交替调用前向传播算法和反向传播算法来更新参数,从而最小化loss。
具体配置文件参数详解如下:
net: "examples/mnist/lenet_train_test.prototxt" #深度网络模型配置文件的位置
#也可以选择对训练模型和测试模型分别设定:
#train_net: "examples/hdf5_classification/logreg_auto_train.prototxt"
#test_net: "examples/hdf5_classification/logreg_auto_test.prototxt"
test_iter: 100 #测试集大小=batch_size*test_iter完成一次测试需要的迭代次数
test_interval: 500 #测试500次进行测试一次
base_lr: 0.01 #基础学习率
momentum: 0.9 #动量参数,上一次梯度更新的权重,一般设置为0.9
weight_decay: 0.0005 #权重衰减,防止过拟合的参数,乘以权值惩罚项
lr_policy: "inv"#学习率调整策略有很多种,还有step、fixed、exp、multisteppoly等策略
gamma: 0.0001 #学习率变化的比率,每次更新学习速率都是乘上这个固定常数
stepsize:100 #学习率变化的频率
power: 0.75
display: 100 #每训练100在屏幕上展示一次
max_iter: 10000 #最大迭代次数
snapshot: 5000 #训练5000次保存镜像
snapshot_prefix: "examples/mnist/lenet" #保存的路径
type: "Adam" #使用的优化算法,还有SGD,AdaDelta,AdaGrad,Nesterov,RMSProp,默认是SGD
solver_mode: GPU #设置运行模式,选择GPU