Caffe的solver参数介绍
2017-03-01 15:44
316 查看
文章作者:Tyan
博客:noahsnail.com | CSDN | 简书
base_lr
这个参数是用来表示网络的初始学习率的。这个值是一个浮点型实数。
lr_policy
这个参数是用来表示学习率随着时间是如何变化的。值是字符串,需要加
“step”——需要设置
“multistep”——与
“fixed”——学习率
“inv”——学习率变化公式为
“exp”——学习率变化公式为
“poly”——学习率以多项式形式衰减,到最大迭代次数时降为0。学习率变化公式为
“sigmoid”——学习率以S型曲线形式衰减,学习率变化公式为
gamma
这个参数表示学习率每次的变化程度,值为实数。
stepsize
这个参数表示什么时候应该进行训练的下一过程,值为正整数。主要用在
stepvalue
这个参数表示什么时候应该进行训练的下一过程,值为正整数。主要用在
max_iter
这个参数表示训练神经网络迭代的最大次数,值为正整数。
momentum
这个参数表示在新的计算中要保留的前面的权重数量,值为真分数,通常设为0.9。
weight_decay
这个参数表示对较大权重的惩罚(正则化)因子。值为真分数。
This parameter indicates the factor of (regularization) penalization of large weights. This value is a often a real fraction.
solver_mode
这个参数用来表示求解神经网络的模式——值为CPU or GPU。
snapshot
这个参数用来表示每迭代多少次就应该保存snapshot的
snapshot_prefix:
这个参数用来表示保存snapshot时
net:
这个参数表示训练网络所在的位置,值为带引号的字符串。
test_iter
这个参数表示
这个参数表示每个test_interval进行多少次test迭代,值为正整数。
test_interval
这个参数表示什么时候进行数据的测试,值为正整数。
display
这个参数用来表示什么时候将输出结果打印到屏幕上,值为正整数,表示迭代次数。
type
这个参数表示训练神经网络采用的反向传播算法,值为带引号的字符串。可选的值有:
Stochastic Gradient Descent “SGD”——随机梯度下降,默认值。
AdaDelta “AdaDelta”——一种”鲁棒的学习率方法“,是基于梯度的优化方法。
Adaptive Gradient “AdaGrad”——自适应梯度方法。
Adam “Adam”——一种基于梯度的优化方法。
Nesterov’s Accelerated Gradient “Nesterov”——Nesterov的加速梯度法,作为凸优化中最理想的方法,其收敛速度非常快。
RMSprop “RMSProp”——一种基于梯度的优化方法。
solver.prototxt
参考资料
http://www.cnblogs.com/denny402/p/5074049.html
https://github.com/BVLC/caffe/wiki/Solver-Prototxt
http://stackoverflow.com/questions/30033096/what-is-lr-policy-in-caffe
博客:noahsnail.com | CSDN | 简书
1. Parameters
solver.prototxt文件是用来告诉caffe如何训练网络的。
solver.prototxt的各个参数的解释如下:
base_lr
这个参数是用来表示网络的初始学习率的。这个值是一个浮点型实数。
lr_policy
这个参数是用来表示学习率随着时间是如何变化的。值是字符串,需要加
""。学习率变化的可选参数有:
“step”——需要设置
stepsize。根据
gamma参数和
stepsize参数来降低学习率,
base_lr * gamma ^ (floor(iter / stepsize))。
iter是当前迭代次数。学习率每迭代
stepsize次变化一次。
“multistep”——与
step类似,需要设置
stepvalue,学习率根据
stepvalue进行变化。
“fixed”——学习率
base_lr保持不变。
“inv”——学习率变化公式为
base_lr * (1 + gamma * iter) ^ (- power)
“exp”——学习率变化公式为
base_lr * gamma ^ iter}
“poly”——学习率以多项式形式衰减,到最大迭代次数时降为0。学习率变化公式为
base_lr * (1 - iter/max_iter) ^ (power)。
“sigmoid”——学习率以S型曲线形式衰减,学习率变化公式为
base_lr * (1 / (1 + exp(-gamma * (iter - stepsize))))。
gamma
这个参数表示学习率每次的变化程度,值为实数。
stepsize
这个参数表示什么时候应该进行训练的下一过程,值为正整数。主要用在
lr_policy为
step的情况。
stepvalue
这个参数表示什么时候应该进行训练的下一过程,值为正整数。主要用在
lr_policy为
multistep的情况。
max_iter
这个参数表示训练神经网络迭代的最大次数,值为正整数。
momentum
这个参数表示在新的计算中要保留的前面的权重数量,值为真分数,通常设为0.9。
weight_decay
这个参数表示对较大权重的惩罚(正则化)因子。值为真分数。
This parameter indicates the factor of (regularization) penalization of large weights. This value is a often a real fraction.
solver_mode
这个参数用来表示求解神经网络的模式——值为CPU or GPU。
snapshot
这个参数用来表示每迭代多少次就应该保存snapshot的
model和
solverstate,值为正整数。
snapshot_prefix:
这个参数用来表示保存snapshot时
model和
solverstate的前缀,值为带引号的字符串。
net:
这个参数表示训练网络所在的位置,值为带引号的字符串。
test_iter
这个参数表示
这个参数表示每个test_interval进行多少次test迭代,值为正整数。
test_interval
这个参数表示什么时候进行数据的测试,值为正整数。
display
这个参数用来表示什么时候将输出结果打印到屏幕上,值为正整数,表示迭代次数。
type
这个参数表示训练神经网络采用的反向传播算法,值为带引号的字符串。可选的值有:
Stochastic Gradient Descent “SGD”——随机梯度下降,默认值。
AdaDelta “AdaDelta”——一种”鲁棒的学习率方法“,是基于梯度的优化方法。
Adaptive Gradient “AdaGrad”——自适应梯度方法。
Adam “Adam”——一种基于梯度的优化方法。
Nesterov’s Accelerated Gradient “Nesterov”——Nesterov的加速梯度法,作为凸优化中最理想的方法,其收敛速度非常快。
RMSprop “RMSProp”——一种基于梯度的优化方法。
2. Demo
lr_policy# lr_policy为multisetp base_lr: 0.01 momentum: 0.9 lr_policy: "multistep" gamma: 0.9 stepvalue: 1000 stepvalue: 2000 stepvalue: 3000 stepvalue: 4000 stepvalue: 5000 # lr_policy为step base_lr: 0.01 momentum: 0.9 lr_policy: "step" gamma: 0.9 stepsize: 1000
solver.prototxt
net: "models/bvlc_alexnet/train_val.prototxt" # 每次测试时进行1000次迭代 test_iter: 1000 # 每进行1000次训练执行一次测试 test_interval: 1000 base_lr: 0.01 lr_policy: "step" gamma: 0.1 stepsize: 100000 display: 20 max_iter: 450000 momentum: 0.9 weight_decay: 0.0005 snapshot: 10000 snapshot_prefix: "models/bvlc_alexnet/caffe_alexnet_train" solver_mode: GPU
参考资料
http://www.cnblogs.com/denny402/p/5074049.html
https://github.com/BVLC/caffe/wiki/Solver-Prototxt
http://stackoverflow.com/questions/30033096/what-is-lr-policy-in-caffe
相关文章推荐
- Caffe的solver参数介绍
- 【深度学习】caffe 中的一些参数介绍
- caffe 参数介绍
- caffe中solver.prototxt参数说明
- caffe之solver.prototxt文件参数设置
- 【深度学习】caffe 中的一些参数介绍
- Caffe的Solver参数设置
- caffe中solver.prototxt参数说明
- caffe中solver.prototx 中的参数
- caffe 参数介绍
- 实用:使用caffe训练模型时solver.prototxt中的参数设置解析
- caffe 其他层及参数介绍
- Caffe--solver.prototxt配置文件 参数设置及含义
- Caffe学习笔记8:solver参数配置
- 薛开宇学习笔记二之总结笔记--caffe 中solver.prototxt;train_val.prototxt的一些参数介绍
- 【深度学习】caffe 中的一些参数介绍
- caffe solver参数解析
- caffe 参数介绍
- caffe的solver文件参数详解--caffe学习(2)
- caffe 中的一些参数介绍