caffe的solver理解
2017-03-03 10:53
141 查看
【一个iteration等于使用batchsize个样本训练一次】
【一个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
【一个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
相关文章推荐
- caffe code 理解-solver.cpp&&sgd_solver.cpp
- caffe(3) solver.prototxt的理解
- Caffe Solver理解篇(2) SGD, AdaDelta, Ada-Grad, Adam, NAG, RMSprop 六种梯度下降方法横向对比
- 对caffe处理数据过程的浅显理解
- Caffe Blob Dtype理解
- build_release/cuda/src/caffe/solvers/nesterov_solver.o
- caffe学习 - solver的优化方法
- caffe中lenet_solver.prototxt配置文件注解
- Caffe中learning rate 和 weight decay 的理解
- caffe源码解析之solver
- [caffe笔记005]:通过代码理解faster-RCNN中的RPN
- caffe学习:solver优化方法简介
- Caffe的Solver参数设置
- caffe的python接口学习(2):生成solver文件
- Caffe学习笔记8:solver参数配置
- Caffe框架的理解(二):详解AlexNet
- Caffe 关于 LetNet-5 之 lenet_solver.prototxt 解析
- 学习笔记:Caffe上LeNet模型理解
- Caffe学习:Solver
- caffe学习笔记7:solver及其配置