Caffe中Solver.prototxt解析
Posted Dream_yz
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Caffe中Solver.prototxt解析相关的知识,希望对你有一定的参考价值。
Caffe中Solver.prototxt解析
Solver流程
- 设计好需要优化的对象,以及用于学习的训练网络和用于评估的测试网络。(通过调用另一个配置文件prototxt来进行);
- 通过forward和backward迭代的进行优化来更新参数;
- 定期的评价测试网络(可设定多少次训练后,在进行一次测试);
- 在优化过程中显示模型和solver的状态。
Solver工作
在每一次的迭代过程中,Solver做了如下工作:
- 调用forward算法来计算最终的输出值,以及对应的loss;
- 调用backward算法来计算每层的梯度;
- 根据选用的solver方法,利用梯度进行参数更新;
- 记录并保存每次迭代的学习率、快照,以及对应的状态;
Solver.prototxt文件
test_iter: 100
test_interval: 1000
base_lr: 0.001
display: 200
max_iter: 10000
lr_policy: "step"
gamma: 0.1
momentum: 0.9
weight_decay: 0.0001
stepsize: 1000
snapshot: 5000
snapshot_prefix: "snapshot"
solver_mode: GPU
net: "train_val.prototxt"
solver_type: SGD
Solver.prototxt参数
- net:用于训练/预测的网络描述文件
- test_iter:预测阶段迭代次数(与test_batch相乘后要大于测试样本集)
- test_interval:训练时没迭代多少次,进行一次预测(与batchSize相乘大于训练集)
- basr_lr:网络基础学习速率
- momentum:网络基础冲量,学习的参数,一般不修改该值
- weight_decay:网络基础衰减量
- lr_policy:学习率变化
- gamma:学习率变化比率。一般不修改该值
- power:学习速率的衰减策略
- stepsize:没多少次学习率递减
- display:经过多少次迭代后显示一次
- max_iter:最大迭代次数
- snapshot:多少次打印一次快照
- snapshot_prefix:快照前缀
- solver_mode:是否使用GPU
- solver_type:优化算法的选择,一共有六种可选:SGD、AdaDelta、AdaGrad、Adam、Nesterov和RMSProp。默认为SGD。
参考链接:https://blog.csdn.net/a1809032425/article/details/81158470
以上是关于Caffe中Solver.prototxt解析的主要内容,如果未能解决你的问题,请参考以下文章