点击此处返回总目录 今天讲solver这个配置文件。 1. caffe提供了6种优化算法。在solver文件中可以通过type类型来选择。包括: type: "SGD" //随机梯度下降, 在Caffe中SGD其实应该是Momentum,并不是标准的随机梯度下降法。 type: "AdaDelta" //AdaDelta type: "AdaGrad" //Adaptive Gradient type: "Adam" //Adam type: "Nesterov" //Nesterov’s Accelerated Gradient type: "RMSProp" //RMSprop 2. 学习率调整的策略。 lr_policy: "fixed" //保持base_lr不变 lr_policy: "step" //还需设置一个stepsize,返回 base_lr * gamma ^ (floor(iter / stepsize)),其中iter为当前迭代次数 lr_policy: "exp" //base_lr * gamma ^ iter lr_policy: "inv" //还需设置一个"power",返回 base_lr * (1 + gamma * iter) ^ (- power)。常用。 lr_policy: "multistep" //还需要设置一个stepvalue。这个参数和step相似,step是均匀等间隔变化,而multistep是根据stepvalue值变化。 lr_policy: "ploy" //学习率进行多项式误差,返回 base_lr (1 - iter/max_iter) ^ (power) lr_policy: "sigmoid" //学习率进行sigmoid衰减。返回 base_lr ( 1/(1 + exp(-gamma * (iter - stepsize))))
#网络模型描述文件 #如果训练模型和测试模型不一样的话,也可以用train_net和test_net来对训练模型和测试模型分别设定: #train_net: "xxxxxxxxxx" #test_net: "xxxxxxxxxx" net: "E:/Caffe-windows/caffe-windows/examples/mnist/lenet_train_test.prototxt" #test_iter的意思是一次多少个样本?测试的时候是一个batch一个batch进行测试的,test_iter等于100表示,一次测试要测试100*batch个样本。 #这个值要设置成多大比较好呢?我们希望把所有的样本都进行测试。比如总共的测试图片是6400张,batch_size=64,那这个参数就是6400/64=100。 test_iter: 100 #每训练500次进行一次测试。 test_interval: 500 #基础学习率 base_lr: 0.01 #动量。因为Caffe的SGD其实是Momentum法,所以有这个参数。 momentum: 0.9 type:SGD #这一行可以省略,因为默认值就是SGD #权重衰减项,其实也就是正则化项。作用是防止过拟合 weight_decay: 0.0005 #学习率调整策略 lr_policy: "inv" gamma: 0.0001 power: 0.75 #每训练100次屏幕上显示一次,如果设置为0则不显示 display: 100 #最大迭代次数 max_iter: 2000 #快照。可以把训练的model和solver的状态进行保存。每迭代5000次保存一次,如果设置为0则不保存 snapshot: 5000 snapshot_prefix: "E:/Caffe-windows/caffe-windows/examples/mnist/models" #选择运行模式 solver_mode: CPU |
|