caffe中lenet_solver.prototxt配置文件注解
caffe框架自带的例子mnist里有一个lenet_solver.prototxt文件,这个文件是具体的训练网络的引入文件,定义了CNN网络架构之外的一些基础参数,如总的迭代次数、测试间隔、基础学习率、基础学习率的更新策略、训练平台(GPU或CPU)等。
# The train/test net protocol buffer definition //对训练和测试网络的定义
//网络的路径,可以使用绝对路径或者相对路径
net: "D:/Software/Caffe/caffe-master/examples/mnist/lenet_train_test.prototxt"
//test_iter参数定义训练流程中前向传播的总批次数
# test_iter specifies how many forward passes the test should carry out.
//在MNIST中,定义的是每批次100张图片,一共100个批次,覆盖了全部10000个测试图例
# In the case of MNIST, we have test batch size 100 and 100 test iterations,
# covering the full 10,000 testing images.
/*
test_iter是定义的测试图例分为多少批次,由于一次性执行所有的测试图例效率很低,所以把测试
图例分为几个批次来依次执行,每个批次包含的图例数量是在net网络的模型文件.prototxt中的
batch_size变量定义的,test_iter*batch_size等于总的测试图集数量
*/
test_iter: 100
//测试间隔,训练没迭代500次后执行一次测试(测试是为了获得当前模型的训练精度)
# Carry out testing every 500 training iterations.
test_interval: 500
/*
网络的学习率设置
1. base_lr:表示base learning rate,基础学习率,一般在网络模型中的每一层都会定义两个名称为
“lr_mult”的学习率系数,这个学习率系数乘上基础学习率(base_lr*lr_mult)才是最终的学习率
2. momentum:冲量单元是梯度下降法中一种常用的加速技术,作用是有助于训练过程中逃离局部
最小值,使网络能够更快速的收敛,具体的值是经过反复的迭代调试获得的经验值
3. weight_decay:权值衰减的设置是为了防止训练出现过拟合,在损失函数中,weight_decay是放
在正则项(regularization)前面的一个系数,正则项一般指示模型的复杂度。weight_decay可以调节
模型复杂度对损失函数的影响,提高模型的泛化能力
*/
# The base learning rate, momentum and the weight decay of the network.
base_lr: 0.01
momentum: 0.9
weight_decay: 0.0005
/*
学习率修改策略
以上设置的是初始学习率参数,在训练过程中,依据需要,可以不断调整学习率的参数,调整的策略是
通过lr_policy定义的
lr_policy可以设置为下面这些值,相应的学习率的计算为:
- fixed: 保持base_lr不变.
- step: 如果设置为step,则还需要设置一个stepsize, 返回 base_lr * gamma ^ (floor(iter / stepsize)),其中iter表示当前的迭代次数
- exp: 返回base_lr * gamma ^ iter, iter为当前迭代次数
- inv: 如果设置为inv,还需要设置一个power, 返回base_lr * (1 + gamma * iter) ^ (- power)
- multistep: 如果设置为multistep,则还需要设置一个stepvalue。这个参数和step很相似,step是均匀等间隔变化,而multistep则是根据stepvalue值变化
- poly: 学习率进行多项式误差, 返回 base_lr (1 - iter/max_iter) ^ (power)
- sigmoid: 学习率进行sigmod衰减,返回 base_lr ( 1/(1 + exp(-gamma * (iter - stepsize))))
*/
# The learning rate policy
lr_policy: "inv"
gamma: 0.0001
power: 0.75
//每迭代100次显示一次执行结果
# Display every 100 iterations
display: 100
//最大迭代次数
# The maximum number of iterations
max_iter: 10000
//生成中间结果,记录迭代5000次之后结果,定义caffeModel文件生成路径
# snapshot intermediate results
snapshot: 5000
snapshot_prefix: "D:/Software/Caffe/caffe-master/examples/mnist/lenet"
//运行模式,CPU或者GPU
# solver mode: CPU or GPU
solver_mode: GPU
在每一次的迭代过程中,solver做了这几步工作:
1、调用forward算法来计算最终的输出值,以及对应的loss
2、调用backward算法来计算每层的梯度
3、根据选用的slover方法,利用梯度进行参数更新
4、记录并保存每次迭代的学习率、快照,以及对应的状态。
可以设定网络经过多少次迭代训练之后去评价当前的网络。
caffe中lenet_solver.prototxt配置文件注解的更多相关文章
- caffe中lenet_train_test.prototxt配置文件注解
caffe框架下的lenet.prototxt定义了一个广义上的LeNet模型,对MNIST数据库进行训练实际使用的是lenet_train_test.prototxt模型. lenet_train_ ...
- 浅谈caffe中train_val.prototxt和deploy.prototxt文件的区别
本文以CaffeNet为例: 1. train_val.prototxt 首先,train_val.prototxt文件是网络配置文件.该文件是在训练的时候用的. 2.deploy.prototxt ...
- [转]caffe中solver.prototxt参数说明
https://www.cnblogs.com/denny402/p/5074049.html solver算是caffe的核心的核心,它协调着整个模型的运作.caffe程序运行必带的一个参数就是so ...
- Caffe中deploy.prototxt 和 train_val.prototxt 区别
之前用deploy.prototxt 还原train_val.prototxt过程中,遇到了坑,所以打算总结一下 本人以熟悉的LeNet网络结构为例子 不同点主要在一前一后,相同点都在中间 train ...
- caffe中通过prototxt文件查看神经网络模型结构的方法
在修改propotxt之前我们可以对之前的网络结构进行一个直观的认识: 可以使用http://ethereon.github.io/netscope/#/editor 这个网址. 将propotxt文 ...
- caffe 中solver.prototxt
关于cifar-10和mnist的weight_decay和momentum也是相当的重要:就是出现一次把cifar-10的两个值直接用在mnist上,发现错误很大.
- caffe中LetNet-5卷积神经网络模型文件lenet.prototxt理解
caffe在 .\examples\mnist文件夹下有一个 lenet.prototxt文件,这个文件定义了一个广义的LetNet-5模型,对这个模型文件逐段分解一下. name: "Le ...
- Windows下使用python绘制caffe中.prototxt网络结构数据可视化
准备工具: 1. 已编译好的pycaffe 2. Anaconda(python2.7) 3. graphviz 4. pydot 1. graphviz安装 graphviz是贝尔实验室开发的一个 ...
- 配置caffe中出现的问题汇总
1,运行下面代码时: sudo apt-get install libopencv 出错: E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系 原因: 源(source ...
随机推荐
- DB-SQL-MySQL-杂项-调优:Mysql千万以上数据优化、SQL优化方法
ylbtech-DB-SQL-MySQL-杂项-调优:Mysql千万以上数据优化.SQL优化方法 1.返回顶部 1. 1,单库表别太多,一般保持在200以下为宜 2,尽量避免SQL中出现运算,例如se ...
- Mediator 基于内存的发布订阅
Github Mediator 使用方法 /// <summary> /// 返回值 BaseEntity /// </summary> public class Ping1 ...
- 洛谷P1291 [SHOI2002]百事世界杯之旅(期望DP)
题目描述 “……在2002年6月之前购买的百事任何饮料的瓶盖上都会有一个百事球星的名字.只要凑齐所有百事球星的名字,就可参加百事世界杯之旅的抽奖活动,获得球星背包,随声听,更克赴日韩观看世界杯.还不赶 ...
- sybase profile
# # Sybase Product Environment variables # SAP_JRE7_32="/opt/sybase/shared/SAPJRE-7_1_011_32BIT ...
- SQL Server 2014 中,新建登录用户,分配权限,并指定该用户的数据
一.运行环境 系统:Windows 10数据库:SQL Server 2014数据库名: APP 新建的用户名: app 二.操作步骤 1.打开 MS SQL Server Managemen ...
- Java从入门到精通一步到位!
Java作为近几年来非常火的编程语言,转行来做Java的人不计其数,但如今真正的人才仍然匮乏,所以学习Java一定要有一个系统的学习规划课程.阿里云大学帮您规划Java学习路线可以帮助您从一个小白成长 ...
- EL表达式的作用与限制条件
限制条件 只能访问域对象的数据 用法 访问基本数据类型 首先把数据保存在域对象中 pagecontext.setAttribute("name","eric") ...
- Extjs获取input值的几种方法
记录一下: ExtJs获取文本框中值的几种方式 EXTHTML 1.Html文本框 如: 获取值的方式为: var tValue = Ext.getDom('test').value; 或者 var ...
- [HDU1160]FatMouse's Speed
题目大意:读入一些数(每行读入$w[i],s[i]$为一组数),要求找到一个最长的序列,使得符合$w[m[1]] < w[m[2]] < ... < w[m[n]]$且$s[m[1] ...
- 【NOI2001】食物链
[NOI2001]食物链 题意 动物王国中有三类动物 A,B,C,这三类动物的食物链构成了有趣的环形.A 吃 B,B 吃 C,C 吃 A. 现有 N 个动物,以 1 - N 编号.每个动物都是 A,B ...