caffe中求解器介绍

原创 2018年04月16日 16:34:15

本文内容参考自《21天实战Caffe》:

求解器负责对模型优化,它的KPI(Key Performance Indicator, 关键绩效指标)就是使损失函数达到全局最小。
 
特性如下:

  • 负责记录优化过程,创建用于学习的训练网络和用于评估学习效果的测试网络。
  • 调用Forward -> 调用Backward -> 更新权值,反复迭代优化模型。
  • 周期性地评估测试网络。
  • 在优化过程中保存模型、求解器状态等快照。

为了让权值从初始化状态向着更好的模型前进,求解器在每次迭代中完成如下工作:

  • 调用Net的前向传播函数来计算输出和损失函数。
  • 调用Net的反向传播函数来计算梯度。
  • 根据求解器方法,将梯度转换为权值增量。
  • 根据学习速率、历史权值、所用方法更新求解器状态。

Caffe的求解器有以下几种:

1. 随机梯度下降法(Stochastic Gradient Descent, SGD),最常用的一种

2. AdaDelta

3. 自适应梯度法(Adaptive Gradient, ADAGRAD)

4. Adam

5. Nesterow加速梯度法(Nesterov's Accelerated Gradient, NAG)

6. RMSprop

求解器其类中包含一个Net的指针,主要是实现了训练模型参数所采用的优化算法,其派生类就可以对整个网络进行训练。不同的模型训练方法通过重载函数ComputeUpdateValue( )实现计算update参数的核心功能。在进行整个网络训练过程(即运行Caffe训练某个模型)中,实际上是在运行caffe.cpp中的train( )函数,而这个函数实例化一个Solver对象,初始化后调用了Solver中的Solve( )方法,而Solve( )函数主要就是在迭代运行ComputeUpdateValue()和net_->Update()函数。 重要成员变量:shared_ptr<Net<Dtype> > net_

求解器会在Solver::Snapshot()和Solver::SnapshotSolverState()中将权值和它训练时的状态打快照。权值快照将学习到的模型导出,而求解器快照允许从特定快照点恢复训练。使用Solver::Restore()和Solver::RestoreSolverState()恢复训练。权值保存到.caffemodel文件中,求解器状态保存到.solerstate文件中。每个文件都有_iter_N后缀,用于标记打快照时的训练迭代次数。


osg拖拽器

-
  • 1970年01月01日 08:00

Caffe中求解器(Solver)介绍

求解器负责对模型优化,目的是使损失函数达到全局最小。 特性如下: 负责记录优化过程,创建用于学习的训练网络和用于评估学习效果的测试网络。 调用Forward -> 调用Backward -> ...
  • wuqingshan2010
  • wuqingshan2010
  • 2017-05-03 22:38:55
  • 410

Caffe中各种求解器算法比较

Caffe中各种求解器算法比较本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接和图片上...
  • hduxiejun
  • hduxiejun
  • 2016-12-28 22:08:20
  • 740

Caffe入门(6)——Solver求解器

Solver通过协调前向通道结果和反向通道导数来形成参数更新以控制模型优化。学习的任务由Solver和Net承担,Solver负责监督优化和形成参数更新;Net负责产生loss和gradient。Ca...
  • picway
  • picway
  • 2016-09-14 19:42:53
  • 898

caffe solver参数解析

# caffe solver # 求解器说明 # reduce learning rate after 120 epochs (60000 iters) by factor 0f 10 # then...
  • zhjm07054115
  • zhjm07054115
  • 2016-07-30 14:39:36
  • 1158

win7 caffe使用笔记——solver求解器参数以及损失函数的使用

1.caffe的求解器(solver)是对模型的优化,使损失函数达到全局最小,即最优化的求解过程。 2.caffe官网上介绍了6种求解器的方法,denny的solver优化方法已经做过介绍,在solv...
  • cgt19910923
  • cgt19910923
  • 2016-09-22 14:54:29
  • 1160

caffe源码解析-/tools/caffe.cpp(caffe程序入口)

见代码及其注释(ps::个人理解,如有误,欢迎指正) #ifdef WITH_PYTHON_LAYER #include "boost/python.hpp" namespace bp = boos...
  • liuheng0111
  • liuheng0111
  • 2016-11-07 11:45:00
  • 524

caffe中解析器solver中各参数的含义

# 训练网络的定义 train_net: "lenet_train.prototxt" # 测试网络的定义 test_net: "lenet_test.prototxt" # test_ite...
  • yyangzhenjie
  • yyangzhenjie
  • 2017-06-26 17:56:16
  • 174

SAT求解器minisat

  • 2011年08月24日 21:23
  • 43KB
  • 下载

ADAMS求解器(积分器)选择的依据

  • 2011年12月28日 14:58
  • 7KB
  • 下载
收藏助手
不良信息举报
您举报文章:caffe中求解器介绍
举报原因:
原因补充:

(最多只允许输入30个字)