原文

  • 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相关推荐

  1. caffe学习笔记2:net forward与backward

    caffe学习笔记2:Forward and Backward 原网页:http://caffe.berkeleyvision.org/tutorial/forward_backward.html f ...

  2. Caffe学习系列(7):solver及其配置

    solver算是caffe的核心的核心,它协调着整个模型的运作.caffe程序运行必带的一个参数就是solver配置文件.运行代码一般为 # caffe train --solver=*_slover ...

  3. Caffe学习系列(8):solver优化方法

    Caffe学习系列(8):solver优化方法 上文提到,到目前为止,caffe总共提供了六种优化方法: Stochastic Gradient Descent (type: "SGD&qu ...

  4. Caffe学习笔记(二):Caffe前传与反传、损失函数、调优

    Caffe学习笔记(二):Caffe前传与反传.损失函数.调优 在caffe框架中,前传/反传(forward and backward)是一个网络中最重要的计算过程:损失函数(loss)是学习的驱动 ...

  5. caffe学习--cifar10学习-ubuntu16.04-gtx650tiboost--1g--02

    caffe学习--cifar10学习-ubuntu16.04-gtx650tiboost--1g--02 训练网络: caffe train -solver examples/cifar10/cifa ...

  6. caffe 学习笔记之caffe.proto注释

    caffe.proto文件位置为 ./src/proto/caffe.proto caffe.proto注释转自caffe.proto注释上下并加以修改 syntax = "proto2&q ...

  7. Caffe学习系列(19): 绘制loss和accuracy曲线

    转载自: Caffe学习系列(19): 绘制loss和accuracy曲线 - denny402 - 博客园 http://www.cnblogs.com/denny402/p/5110204.htm ...

  8. Caffe学习系列(17):模型各层特征和过滤器可视化

    转载自: Caffe学习系列(17):模型各层特征和过滤器可视化 - denny402 - 博客园 http://www.cnblogs.com/denny402/p/5105911.html cif ...

  9. caffe学习(六):使用python调用训练好的模型来分类(Ubuntu)

    在caffe的学习过程中,我发现我需要一个模板的程序来方便我测试训练的模型.我在上一篇博客中(caffe学习(五):cifar-10数据集训练及测试(Ubuntu) ),最后测试训练好的模型时是修改c ...

  10. Caffe学习笔记4图像特征进行可视化

    Caffe学习笔记4图像特征进行可视化 本文为原创作品,未经本人同意,禁止转载,禁止用于商业用途!本人对博客使用拥有最终解释权 欢迎关注我的博客:http://blog.csdn.net/hit201 ...

最新文章

  1. Linux中的目录和文件管理
  2. 【HDU - 5493】Queue(思维,贪心,线段树)
  3. android+图标+i_explore+无背景,Android Studio中Android Device Monitor中的File Explore不显示文...
  4. 达梦数据库删除用户_达梦数据库的操作手册.docx
  5. Directx11教程39 纹理映射(9)
  6. ExtJS4.2学习(17)表单基本输入控件Ext.form.Field(转)
  7. 六、Mysql体系架构、存储引擎、临时表
  8. Netflix推出Hollow,处理内存数据集的Java库
  9. 第十四天linux扩展知识点
  10. 电脑连接的手机真机,利用Chrome调试WebView
  11. 原型设计Axure下载安装
  12. 计算机基础ps变换蝴蝶,在PS中用自由变换制作飞舞的蝴蝶和用内容识别比例缩放的操作过程...
  13. 斯坦福大学公开课:量子力学_TimelineMax:了解力学
  14. ecshop 在确认收货时新增加商品评价并送消费积分功能
  15. 自己动手用Android和Xposed编写一个微信聊天机器人——《微信聊天精灵》实现关键词自动回复。
  16. 多个视频合成一个视频(带合成工具)
  17. SWAPIDC服务器销售模板,记录利用swapidc搭建IDC销售网站教程
  18. Error:NgdBuild:604解决方法
  19. HTML5的最简单模板
  20. 华为云正式推出区块链服务!区块链技术将在数字经济时代大放异彩

热门文章

  1. C++--第15课 - 惊艳的继承
  2. 对网页渲染的初步认识
  3. MySql的基本操作以及以后开发经常使用的常用指令
  4. PHP关于错误抑制符@的使用
  5. 采集新浪微博数据建设网络舆情监测系统
  6. webmin的vsftp插件
  7. 听说你在学Python?来点PEP吧
  8. 兼容pc端和移动端的轮播图插件 swiper.js
  9. BootStrap的基本使用
  10. setInterval()与clearInterval()的用法