Caffe学习:Forward and Backward
原文
- forward and backward passes(前向迭代和反向迭代)是Net最基本的成分。
下面以简单的logistic regression classifier(逻辑回归分类器)为例。
- Forward Pass(前向迭代)利用给定的输入,根据模型设定的函数,计算出输出。This pass goes from bottom to top(数据流向从bottom到top)。
- 数据x通过一个inner product layer,函数为g(x),然后通过softmax layer,函数为h(x),最终将softmax loss输出为fW(x)。
- Backward Pass(反向迭代)计算由loss(损失)给出的gradient(梯度),用于学习、优化参数。Caffe反向计算每一层的gradient,通过automatic differentiation(自动微分)计算出整个模型的gradient(梯度)。这称为back-propagation(反向迭代)。This pass goes from top to bottom(数据流向从top到bottom)。
Backward Pass从loss开始,依据output的∂fW∂h计算出gradient,layer-by-layer地计算出整个模型的gradient。对于有参数的Layer,例如INNER_PRODUCT layer,根据其参数由∂fW∂Wip计算出其梯度。
Caffe如何进行forward and backward passes(前向迭代和反向迭代):
- 每一次计算时,Net::Forward()和Net::Backward() 方法会调用Layer::Forward()和Layer::Backward()方法
- 每一个Layer都有forward_{cpu,gpu}()和backward_{cpu,gpu}方法,一个Layer可以只使用CPU或者GPU模式,在某些特定约束条件下,或者为了便利。
- Solver(求解方法)优化模型的方法是:先调用forward pass计算output和loss,然后调用backward pass去计算模型的gradient。利用计算出的gradient赋予一定的weight(权重)去更新学习参数,以最大限度地降低loss。
- Solver,Net,和Layer之间的明确分工,是Caffe保持高度的模块化、开放的发展空间。
如果想要了解Caffe不同类型Layer的forward and backward step的细节,详见layer catalogue。
Caffe学习:Forward and Backward相关推荐
- caffe学习笔记2:net forward与backward
caffe学习笔记2:Forward and Backward 原网页:http://caffe.berkeleyvision.org/tutorial/forward_backward.html f ...
- Caffe学习系列(7):solver及其配置
solver算是caffe的核心的核心,它协调着整个模型的运作.caffe程序运行必带的一个参数就是solver配置文件.运行代码一般为 # caffe train --solver=*_slover ...
- Caffe学习系列(8):solver优化方法
Caffe学习系列(8):solver优化方法 上文提到,到目前为止,caffe总共提供了六种优化方法: Stochastic Gradient Descent (type: "SGD&qu ...
- Caffe学习笔记(二):Caffe前传与反传、损失函数、调优
Caffe学习笔记(二):Caffe前传与反传.损失函数.调优 在caffe框架中,前传/反传(forward and backward)是一个网络中最重要的计算过程:损失函数(loss)是学习的驱动 ...
- caffe学习--cifar10学习-ubuntu16.04-gtx650tiboost--1g--02
caffe学习--cifar10学习-ubuntu16.04-gtx650tiboost--1g--02 训练网络: caffe train -solver examples/cifar10/cifa ...
- caffe 学习笔记之caffe.proto注释
caffe.proto文件位置为 ./src/proto/caffe.proto caffe.proto注释转自caffe.proto注释上下并加以修改 syntax = "proto2&q ...
- Caffe学习系列(19): 绘制loss和accuracy曲线
转载自: Caffe学习系列(19): 绘制loss和accuracy曲线 - denny402 - 博客园 http://www.cnblogs.com/denny402/p/5110204.htm ...
- Caffe学习系列(17):模型各层特征和过滤器可视化
转载自: Caffe学习系列(17):模型各层特征和过滤器可视化 - denny402 - 博客园 http://www.cnblogs.com/denny402/p/5105911.html cif ...
- caffe学习(六):使用python调用训练好的模型来分类(Ubuntu)
在caffe的学习过程中,我发现我需要一个模板的程序来方便我测试训练的模型.我在上一篇博客中(caffe学习(五):cifar-10数据集训练及测试(Ubuntu) ),最后测试训练好的模型时是修改c ...
- Caffe学习笔记4图像特征进行可视化
Caffe学习笔记4图像特征进行可视化 本文为原创作品,未经本人同意,禁止转载,禁止用于商业用途!本人对博客使用拥有最终解释权 欢迎关注我的博客:http://blog.csdn.net/hit201 ...
最新文章
- Linux中的目录和文件管理
- 【HDU - 5493】Queue(思维,贪心,线段树)
- android+图标+i_explore+无背景,Android Studio中Android Device Monitor中的File Explore不显示文...
- 达梦数据库删除用户_达梦数据库的操作手册.docx
- Directx11教程39 纹理映射(9)
- ExtJS4.2学习(17)表单基本输入控件Ext.form.Field(转)
- 六、Mysql体系架构、存储引擎、临时表
- Netflix推出Hollow,处理内存数据集的Java库
- 第十四天linux扩展知识点
- 电脑连接的手机真机,利用Chrome调试WebView
- 原型设计Axure下载安装
- 计算机基础ps变换蝴蝶,在PS中用自由变换制作飞舞的蝴蝶和用内容识别比例缩放的操作过程...
- 斯坦福大学公开课:量子力学_TimelineMax:了解力学
- ecshop 在确认收货时新增加商品评价并送消费积分功能
- 自己动手用Android和Xposed编写一个微信聊天机器人——《微信聊天精灵》实现关键词自动回复。
- 多个视频合成一个视频(带合成工具)
- SWAPIDC服务器销售模板,记录利用swapidc搭建IDC销售网站教程
- Error:NgdBuild:604解决方法
- HTML5的最简单模板
- 华为云正式推出区块链服务!区块链技术将在数字经济时代大放异彩