caffe基础-09solver超参数文件配置

来源:互联网 发布:手机淘宝图片不清晰 编辑:程序博客网 时间:2024/06/13 15:08

caffe基础-09solver超参数文件配置

#往往loss function是非凸的,没有解析解,我们需要通过优化方法来求解。#caffe提供了六种优化算法来求解最优参数,在solver配置文件中,通过设置type类型来选择。    Stochastic Gradient Descent (type: "SGD"),#SGD做不了,其他算法基本也不行    AdaDelta (type: "AdaDelta"),    Adaptive Gradient (type: "AdaGrad"),    Adam (type: "Adam"),    Nesterov’s Accelerated Gradient (type: "Nesterov") and    RMSprop (type: "RMSProp")net: "examples/mnist/lenet_train_test.prototxt"  test_iter: 100test_interval: 500base_lr: 0.01momentum: 0.9type: SGDweight_decay: 0.0005lr_policy: "inv"gamma: 0.0001power: 0.75display: 100max_iter: 20000snapshot: 5000snapshot_prefix: "examples/mnist/lenet"solver_mode: CPUnet: "examples/mnist/lenet_train_test.prototxt" #网络位置#也可以分别设定train和test#train_net: "examples/hdf5_classification/logreg_auto_train.prototxt" #test_net: "examples/hdf5_classification/logreg_auto_test.prototxt"test_iter: 100 #迭代了多少个测试样本呢? batch*test_iter 假设有5000个测试样本,一次测试想跑遍这5000个则需要设置test_iter×batch=5000test_interval: 500 #测试间隔。也就是每训练500次,才进行一次测试。base_lr: 0.01 #base_lr用于设置基础学习率 最终学习率base_lr*lr_mult(卷积层参数)lr_policy: "inv" #学习率调整的策略 base_lr要随着迭代次数降低        - fixed:   保持base_lr不变.        - step:    如果设置为step,则还需要设置一个stepsize,  返回 base_lr * gamma ^ (floor(iter / stepsize)),其中iter表示当前的迭代次数        - exp:     返回base_lr * gamma ^ iter, iter为当前迭代次数        - inv:      如果设置为inv,还需要设置一个power, 返回base_lr * (1 + gamma * iter) ^ (- power)        - multistep: 如果设置为multistep,则还需要设置一个stepvalue。这个参数和step很相似,step是均匀等间隔变化,而multistep则是根据                                          stepvalue值变化        - poly:     学习率进行多项式误差, 返回 base_lr (1 - iter/max_iter) ^ (power)        - sigmoid: 学习率进行sigmod衰减,返回 base_lr ( 1/(1 + exp(-gamma * (iter - stepsize))))momentum :0.9 #动量 使优化能更好的朝向最优解方向 固定值display: 100 #每训练100次,在屏幕上显示一次。如果设置为0,则不显示。max_iter: 20000 #最大迭代次数,2W次就停止了snapshot: 5000 #快照。将训练出来的model和solver状态进行保存,snapshot用于设置训练多少次后进行保存 2000snapshot_prefix: "examples/mnist/lenet" solver_mode: CPU #设置运行模式。默认为GPU,如果你没有GPU,则需要改成CPU,否则会出错。