caffe相关参数说明

caffe prototxt文件中的参数意义说明

solver.prototxt

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 x 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。

momentum是梯度下降法中一种常用的加速技术
如果上一次的momentum(即v)与这一次的负梯度方向是相同的,那这次下降的幅度就会加大;若相反则抑制。所以这样做能够达到加速收敛的过程

weight_decay

这个参数表示对较大权重的惩罚(正则化)因子。值为真分数。
This parameter indicates the factor of (regularization) penalization of large weights. This value is a often a real fraction.

"da"

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”——一种基于梯度的优化方法。

caffe layer

以下内容引自中科院计算所刘昕博士的公开课PPT
"da"

"da"

"da"

"da"

"da"

"da"

"da"

"da"

"da"

"da"

"da"

参考文章
【1】[Caffe的solver参数介绍 ]https://blog.csdn.net/quincuntial/article/details/59109447