Caffe学习:Forward and Backward

 

Caffe学习:Forward and Backward

标签: machine-learningcaffe
  4178人阅读  评论(1)  收藏  举报
  分类:
 

原文

  • forward and backward passes(前向迭代和反向迭代)是Net最基本的成分。

forward_backward


下面以简单的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

  • 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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值