Caffe的solver参数介绍
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_policy为step的情况。 - stepvalue
这个参数表示什么时候应该进行训练的下一过程,值为正整数。主要用在lr_policy为multistep的情况。 - 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的model和solverstate,值为正整数。 - snapshot_prefix:
这个参数用来表示保存snapshot时model和solverstate的前缀,值为带引号的字符串。 - 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
参考资料
Caffe的solver参数介绍的更多相关文章
- Caffe的Solver参数设置
Caffe的solver参数设置 http://caffe.berkeleyvision.org/tutorial/solver.html solver是通过协调前向-反向传播的参数更新来控制参数优化 ...
- Caffe常用层参数介绍
版权声明:本文为博主原创文章,转载请注明出处. https://blog.csdn.net/Cheese_pop/article/details/52024980 DATA crop:截取原图像中一个 ...
- caffe之solver.prototxt文件参数设置
caffe solver参数意义与设置 batchsize:每迭代一次,网络训练图片的数量,例如:如果你的batchsize=256,则你的网络每迭代一次,训练256张图片:则,如果你的总图片张数为1 ...
- [转]caffe中solver.prototxt参数说明
https://www.cnblogs.com/denny402/p/5074049.html solver算是caffe的核心的核心,它协调着整个模型的运作.caffe程序运行必带的一个参数就是so ...
- caffe(7) solver及其配置
solver算是caffe的核心的核心,它协调着整个模型的运作.caffe程序运行必带的一个参数就是solver配置文件.运行代码一般为 # caffe train --solver=*_slover ...
- 【深度学习】之Caffe的solver文件配置(转载自csdn)
原文: http://blog.csdn.net/czp0322/article/details/52161759 今天在做FCN实验的时候,发现solver.prototxt文件一直用的都是mode ...
- 利用Caffe训练模型(solver、deploy、train_val)+python使用已训练模型
本文部分内容来源于CDA深度学习实战课堂,由唐宇迪老师授课 如果你企图用CPU来训练模型,那么你就疯了- 训练模型中,最耗时的因素是图像大小size,一般227*227用CPU来训练的话,训练1万次可 ...
- 利用Caffe训练模型(solver、deploy、train_val) + python如何使用已训练模型
版权声明:博主原创文章,微信公众号:素质云笔记,转载请注明来源“素质云博客”,谢谢合作!! https://blog.csdn.net/sinat_26917383/article/details/5 ...
- 【转】Caffe的solver文件配置
http://blog.csdn.net/czp0322/article/details/52161759 solver.prototxt 今天在做FCN实验的时候,发现solver.prototxt ...
随机推荐
- element-ui的rules中正则表达式
<template> <el-form :model="unuseForm" label-position="top" :rules=&quo ...
- 话说 SVN 与 Git 之间的区别
如果你在读这篇文章,说明你跟大多数开发者一样对GIT感兴趣,如果你还没有机会来试一试GIT,我想现在你就要了解它了. GIT不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等.如果 ...
- 关于函数getline()(简单注意事项,不懂你怼我!!!)
关于getline()函数好使但是有毒: 有两种操作需要进行特殊处理: First: #include <iostream>#include <cstring>#include ...
- ubantu下如何完全彻底卸载mysql(转)
ubantu下如何完全彻底卸载mysql https://blog.csdn.net/wszll_Alex/article/details/46277681 第1步 依次执行下面的语句 1 sud ...
- Web大前端面试题-Day4
1. 如何实现瀑布流? 瀑布流布局的原理:1) 瀑布流布局要求要进行布置的元素等宽, 然后计算元素的宽度, 与浏览器宽度之比,得到需要布置的列数;2) 创建一个数组,长度为列数, 里面的值 ...
- XXX on tree
%了发树上莫队 nlognsqrt(n) // luogu-judger-enable-o2 #include<bits/stdc++.h> using namespace std; in ...
- BZOJ.3680.吊打XXX(模拟退火/爬山算法)
题目链接 一个比较好的解释? 模拟退火(Simulated Annealing,SA): (1)初始化一个温度(充分大).初始解状态S.每个T值的迭代次数. (2)对i=1,...,L,做(3)至(7 ...
- BZOJ.1951.[SDOI2010]古代猪文(费马小定理 Lucas CRT)
题目链接 \(Description\) 给定N,G,求\[G^{\sum_{k|N}C_n^k}\mod\ 999911659\] \(Solution\) 由费马小定理,可以先对次数化简,即求\( ...
- COGS NIOP联赛 图论相关算法总结
最小生成树 Kruskal+ufs int ufs(int x) { return f[x] == x ? x : f[x] = ufs(f[x]); } int Kruskal() { int w ...
- Nginx增加模块
http://blog.csdn.net/loyachen/article/details/50902667