caffe中lenet_solver.prototxt配置文件注解
2017-06-28 20:03
579 查看
caffe框架自带的例子mnist里有一个lenet_solver.prototxt文件,这个文件是具体的训练网络的引入文件,定义了CNN网络架构之外的一些基础参数,如总的迭代次数、测试间隔、基础学习率、基础学习率的更新策略、训练平台(GPU或CPU)等。
在每一次的迭代过程中,solver做了这几步工作:
1、调用forward算法来计算最终的输出值,以及对应的loss
2、调用backward算法来计算每层的梯度
3、根据选用的slover方法,利用梯度进行参数更新
4、记录并保存每次迭代的学习率、快照,以及对应的状态。
可以设定网络经过多少次迭代训练之后去评价当前的网络。
# The train/test net protocol buffer definition //对训练和测试网络的定义 //网络的路径,可以使用绝对路径或者相对路径 net: "D:/Software/Caffe/caffe-master/examples/mnist/lenet_train_test.prototxt" //test_iter参数定义训练流程中前向传播的总批次数 # test_iter specifies how many forward passes the test should carry out. //在MNIST中,定义的是每批次100张图片,一共100个批次,覆盖了全部10000个测试图例 # In the case of MNIST, we have test batch size 100 and 100 test iterations, # covering the full 10,000 testing images. /* test_iter是定义的测试图例分为多少批次,由于一次性执行所有的测试图例效率很低,所以把测试 图例分为几个批次来依次执行,每个批次包含的图例数量是在net网络的模型文件.prototxt中的 batch_size变量定义的,test_iter*batch_size等于总的测试图集数量 */ test_iter: 100 //测试间隔,训练没迭代500次后执行一次测试(测试是为了获得当前模型的训练精度) # Carry out testing every 500 training iterations. test_interval: 500 /* 网络的学习率设置 1. base_lr:表示base learning rate,基础学习率,一般在网络模型中的每一层都会定义两个名称为 “lr_mult”的学习率系数,这个学习率系数乘上基础学习率(base_lr*lr_mult)才是最终的学习率 2. momentum:冲量单元是梯度下降法中一种常用的加速技术,作用是有助于训练过程中逃离局部 最小值,使网络能够更快速的收敛,具体的值是经过反复的迭代调试获得的经验值 3. weight_decay:权值衰减的设置是为了防止训练出现过拟合,在损失函数中,weight_decay是放 在正则项(regularization)前面的一个系数,正则项一般指示模型的复杂度。weight_decay可以调节 模型复杂度对损失函数的影响,提高模型的泛化能力 */ # The base learning rate, momentum and the weight decay of the network. base_lr: 0.01 momentum: 0.9 weight_decay: 0.0005 /* 学习率修改策略 以上设置的是初始学习率参数,在训练过程中,依据需要,可以不断调整学习率的参数,调整的策略是 通过lr_policy定义的 lr_policy可以设置为下面这些值,相应的学习率的计算为: - 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)))) */ # The learning rate policy lr_policy: "inv" gamma: 0.0001 power: 0.75 //每迭代100次显示一次执行结果 # Display every 100 iterations display: 100 //最大迭代次数 # The maximum number of iterations max_iter: 10000 //生成中间结果,记录迭代5000次之后结果,定义caffeModel文件生成路径 # snapshot intermediate results snapshot: 5000 snapshot_prefix: "D:/Software/Caffe/caffe-master/examples/mnist/lenet" //运行模式,CPU或者GPU # solver mode: CPU or GPU solver_mode: GPU
在每一次的迭代过程中,solver做了这几步工作:
1、调用forward算法来计算最终的输出值,以及对应的loss
2、调用backward算法来计算每层的梯度
3、根据选用的slover方法,利用梯度进行参数更新
4、记录并保存每次迭代的学习率、快照,以及对应的状态。
可以设定网络经过多少次迭代训练之后去评价当前的网络。
相关文章推荐
- caffe中lenet_train_test.prototxt配置文件注解
- Caffe--solver.prototxt配置文件 参数设置及含义
- Caffe--solver.prototxt配置文件 参数设置及含义
- caffe配置文件 网络lenet-train-test.prototxt注释及说明
- 解析./build/tools/caffe train --solver=examples/mnist/lenet_solver.prototxt
- Caffe之solver.prototxt文件参数设置
- caffe中*_train_test.prototxt配置文件分析
- caffe生成lenet-5的deploy.prototxt文件
- caffe生成lenet-5的deploy.prototxt文件(prototxt内容解析)
- caffe中 solver.prototxt文件
- caffe solver.prototxt文件
- caffe中LetNet-5卷积神经网络模型文件lenet.prototxt理解
- 区分caffe中train.prototxt,solver.prototxt,deploy.prototxt等文件
- Caffe模型训练之solver.prototxt配置
- Caffe 中关于 LetNet-5 网络的定义文件 lenet.prototxt 解析
- caffe之solver.prototxt文件参数设置
- caffe之solver.prototxt文件参数设置
- caffe中mnist中 lenet_train_test.prototxt和lenet.prototxt(deploy文件)区别
- caffe中solver.prototxt文件参数解释
- caffe之solver.prototxt文件参数设置