版权声明:转载请注明出处,谢谢! https://blog.csdn.net/Quincuntial/article/details/59109447

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_policystep的情况。
  • stepvalue 
    这个参数表示什么时候应该进行训练的下一过程,值为正整数。主要用在lr_policymultistep的情况。
  • 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的modelsolverstate,值为正整数。
  • snapshot_prefix: 
    这个参数用来表示保存snapshot时modelsolverstate的前缀,值为带引号的字符串。
  • 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

参考资料

  1. http://www.cnblogs.com/denny402/p/5074049.html
  2. https://github.com/BVLC/caffe/wiki/Solver-Prototxt
  3. http://stackoverflow.com/questions/30033096/what-is-lr-policy-in-caffe

Caffe的solver参数介绍的更多相关文章

  1. Caffe的Solver参数设置

    Caffe的solver参数设置 http://caffe.berkeleyvision.org/tutorial/solver.html solver是通过协调前向-反向传播的参数更新来控制参数优化 ...

  2. Caffe常用层参数介绍

    版权声明:本文为博主原创文章,转载请注明出处. https://blog.csdn.net/Cheese_pop/article/details/52024980 DATA crop:截取原图像中一个 ...

  3. caffe之solver.prototxt文件参数设置

    caffe solver参数意义与设置 batchsize:每迭代一次,网络训练图片的数量,例如:如果你的batchsize=256,则你的网络每迭代一次,训练256张图片:则,如果你的总图片张数为1 ...

  4. [转]caffe中solver.prototxt参数说明

    https://www.cnblogs.com/denny402/p/5074049.html solver算是caffe的核心的核心,它协调着整个模型的运作.caffe程序运行必带的一个参数就是so ...

  5. caffe(7) solver及其配置

    solver算是caffe的核心的核心,它协调着整个模型的运作.caffe程序运行必带的一个参数就是solver配置文件.运行代码一般为 # caffe train --solver=*_slover ...

  6. 【深度学习】之Caffe的solver文件配置(转载自csdn)

    原文: http://blog.csdn.net/czp0322/article/details/52161759 今天在做FCN实验的时候,发现solver.prototxt文件一直用的都是mode ...

  7. 利用Caffe训练模型(solver、deploy、train_val)+python使用已训练模型

    本文部分内容来源于CDA深度学习实战课堂,由唐宇迪老师授课 如果你企图用CPU来训练模型,那么你就疯了- 训练模型中,最耗时的因素是图像大小size,一般227*227用CPU来训练的话,训练1万次可 ...

  8. 利用Caffe训练模型(solver、deploy、train_val) + python如何使用已训练模型

    版权声明:博主原创文章,微信公众号:素质云笔记,转载请注明来源“素质云博客”,谢谢合作!! https://blog.csdn.net/sinat_26917383/article/details/5 ...

  9. 【转】Caffe的solver文件配置

    http://blog.csdn.net/czp0322/article/details/52161759 solver.prototxt 今天在做FCN实验的时候,发现solver.prototxt ...

随机推荐

  1. 修改MySQL中的数据

    一:insert语句 1.介绍 在执行插入语句前,需要具有执行INSERT语句的INSERT权限. 2.准备环境 3.简单insert语句 4.插入多行 在这种形式中,每行的值列表用逗号分隔. 如果为 ...

  2. EDMA3 笔记

          A-synchronized和AB-synchronized传输在1个frame传输完成后地址计算有所不同. A-synchronized: last array in the frame ...

  3. JSP中的内置标记(JSP动作)和 EL表达式

    一.JSP的内置标记(JSP动作) (一)JSP的内置标记都是以<jsp: 开始标记的 一般会用到<jsp:useBean/>,<jsp:setProperty/>,&l ...

  4. UML用例图之间的关系

    在画用例图的时候,理清用例之间的关系是重点.用例的关系有泛化(generalization).扩展(extend)和包含(include).其中include和extend最易混淆.下面我们结合实例彻 ...

  5. BZOJ4268 : 小强的书架

    首先将所有高度乘上10,设f[i]为将前i本书放入书架的最小高度,则 \[\begin{eqnarray*}f[i]&=&\min(f[j-1]+first(j,i)+second(j ...

  6. 【BZOJ-2888】资源运输 LCT + 启发式合并

    2888: 资源运输 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 63  Solved: 33[Submit][Status][Discuss] D ...

  7. H5在Android 4.4中WebView兼容性问题

    项目中使用到了Vue.YDUI.webpack,部分页面在Android WebView中出现了样式问题,卡顿等等: 1.promise不识别——需要使用babel-polyfill. 2.由于系统限 ...

  8. AVR Programming Methods

    AVR Programming Methods  There are many ways to program AVR microcontrollers. Since many people ask ...

  9. 如何利用 jQuery 修改 css 中带有 !important 的样式属性?

    使用 jQuery 修改 css 中带有 !important 的样式属性 外部样式为: div.test { width:auto !important; overflow:auto !import ...

  10. OOP设计模式[JAVA]——04命令模式

    命令模式 命令模式的意图 命令模式属于对象的行为模式.别名又叫:Action或Transaction. 命令模式把一个请求或者操作封装到一个对象中.命令模式允许系统使用不同的请求把客户端参数化,对请求 ...