版权声明:转载请注明出处,谢谢! 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. 【BZOJ】2120: 数颜色

    题解 练习一下带修改莫队 先按照左端点的块排序,再按照右端点的块排序,然后按照时间排序 每个修改操作存一下修改前这个位置的值就可以逆序操作了 代码 #include <bits/stdc++.h ...

  2. CSS------如何让div中的div处于右下角

    如图: 代码: <div style="width:300px;height:300px"> <div style="position:absolute ...

  3. (3)python tkinter-消息框、对话框、文件对话框

    消息框 导入 import tkinter import tkinter.messagebox #这个是消息框,对话框的关键 提示消息框 tkinter.messagebox.showinfo('提示 ...

  4. 本机Tomcat启动myeclipse,用Jmeter录制脚本端口冲突解决办法

    今天用jmeter 录制脚本与已经启动的Tomcat端口冲突,无法启动工作台的http代理服务器, 如果两个的端口一样,则http代理服务器启动就会提示端口被占用 所以先把Tomcat端口和http代 ...

  5. 001.FTP简介及相关文件

    一 FTP简介 FTP(File Transfer Protocol)文件传输协议,用于Internet上控制文件的双向传输. 下载:远程主机拷贝文件至本地: 上传:本地主机拷贝文件至远程. 二 FT ...

  6. python scrapy 调试模式

    scrapy通过命令行创建工程,通过命令行启动爬虫,那么有没有方式可以在IDE中调试我们的爬虫呢? 实际上,scrapy是提供给我们工具的, 1. 首先在工程目录下新建一个脚本文件,作为我们执行爬虫的 ...

  7. 系统的Drawable(四)-LayerListDrawable

    系统的Drawable(四)-LayerListDrawable 学习自 https://blog.csdn.net/u014695188/article/details/52815444 Layer ...

  8. 在fork的项目里同步别人新增分支的方法

    # 1.将项目B clone 到本地 git clone -b master 项目B的git地址 # 2.将项目A的git地址,添加至本地的remote git remote add upstream ...

  9. 使用 IntraWeb (17) - 基本控件之 TIWRadioButton、TIWRadioGroup、TIWCheckBox

    TIWRadioButton //单选 TIWRadioGroup //单选组 TIWCheckBox //复选 TIWRadioButton 所在单元及继承链: IWCompRadioButton. ...

  10. java学习:JMM(java memory model)、volatile、synchronized、AtomicXXX理解

    一.JMM(java memory model)内存模型 从网上淘来二张图: 上面这张图说的是,在多核CPU的系统中,每个核CPU自带高速缓存,然后计算机主板上也有一块内存-称为主内(即:内存条).工 ...