解剖caffe:Forward 和 Backward

Forward和Backward是一个网络的基本计算。

先考虑一个logistic regression分类器。

前向通路使用输入计算输出,用于推理。计算模型表示的函数,前向通路从bottom到top。

数据通过内积层传递到, 然通过softmax函数传递到以及softmax损失给

反向通路在损失函数处开始,并计算关于输出的梯度。关于模型其余部分的梯度通过链式规则逐层计算。带有参数的层,比如INNER_PRODUCT层,在反向传播中计算关于参数的梯度

这些计算紧跟在模型定义之后:Caffe计划并实施前向和后向传播

  • Net::Forward和Net::backward方法实施各自的传递,同时Layer::Forward和Layer::Backward计算每一步
  • 每一层type由forward_{cpu, gpu}和backward_{cpu, gpu}方法根据计算模式来计算steps。由于约束或方便性,一层仅仅使用CPU或GPU中的一个。

Solver优化一个模型,通过首先前向调用生成输出和损失,然后反向调用生成模型梯度,接着把梯度吸收进权重更新来尝试最小化损失。解决Solver,Net, 和layer的分工使得caffe保持模块化和开发开放化。

对于caffe层类型前向传播和反向传播的细节,参考http://caffe.berkeleyvision.org/tutorial/layers.html

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值