【一个epoch等于使用训练集中全部样本训练一次】
【batchsize每次在训练集中取batchsize个样本训练】
【举个例子,训练集有1000个样本,batchsize=10,那么:】
【训练完整个样本集需要:】
【100次iteration,1次epoch。】
test_iter: 1000 一次测试需要的iter次数
test_interval: 4000 测试间隔,4000次iter后,进行一次测试
即,进行一次测试一共需要进行test_iter次迭代,每次迭代的数量是test的batchsize大小,即batchsize*test_iter=测试图片数量
test_initialization: false 【这个目前还不知道】
display: 40 40次iter显示一次结果
average_loss: 40 官方解释是:Display the loss averaged over the last average_loss iterations,这里即显示最近40次iter的平均loss,
【这个跟源码中的UpdateSmoothedLoss函数有关?这个函数将历史过程中的loss求平均可以减少loss震荡】
base_lr: 0.01 初始时候的学习率
lr_policy学习率调整策略
// - fixed: always return base_lr.
// - step: return base_lr * gamma ^ (floor(iter / step))
// - exp: return base_lr * gamma ^ iter
// - inv: return base_lr * (1 + gamma * iter) ^ (- power)
// - multistep: similar to step but it allows non uniform steps defined by
// stepvalue
// - poly: the effective learning rate follows a polynomial decay, to be
// zero by the max_iter. return base_lr (1 - iter/max_iter) ^ (power)
// - sigmoid: the effective learning rate follows a sigmod decay
// return base_lr ( 1/(1 + exp(-gamma * (iter - stepsize))))
stepsize 作用如上(step策略时,stepsize次进行一次base_lr调整)
gamma 作用如上
max_iter 最大训练次数【注意,这个针对的是batchsize!一次iter前向传递batchsize个样本,可以联系我开头所说的】
【一个epoch需要的epoch_iter=样本所有图片数/batchsize】
【则一共有max_iter/epoch_iter个epoch】
momentum 动量项
#######caffe SGD 随机梯度下降小解释
对于一般的SGD
w<-w-a*dw,a是学习率
而带动量项的SGD
v<-b*v-a*dw
w<-w+v
就是利用dw和上一次权重的更新值来组合新的更新值v(初始v=a*dw?)
参考caffe SGD说明,以及BP算法的改进:http://blog.csdn.net/acdreamers/article/details/44657439