caffe中forward过程总结

    caffe中最重要的两个部分就是forward和backward的过程,farward是根据输入数据正向预测输入属于哪一类;backward是根据输出的结果求得代价函数,然后根据代价函数反向求去其相对于各层网络参数的梯度的过程。我们先对farward过程做一下总结。

    caffe中有两个过程会设计到farward,test和train,这里我们以train训练过程为例。

  1. int train() caffe.cpp Line 154:
    这是train的入口函数,train函数里的操作这里我们掠过,我们主要进入训练的主体函数solver->Solve()函数(Line 220)。void Solver<Dtype>::Solve()函数是训练网络的入口函数,而我们的训练的主体函数就是在Line 293的Step()函数。
  2. 训练主体函数void Solver<Dtype>::Step():
    进入这个函数之后,我们首先就要进行迭代的循环,以lenet网络训练为例,由于lenet是采用stochastic的训练方式,所以就必须进行多次迭代,当然每次迭代循环又会采用多个样本(batch)进行训练。在循环体内,程序就回进入forward过程了。程序如下:
    for (int i = 0; i < param_.iter_size(); ++i) { // iter_size=1 indicate update parameters for every sample
          loss += net_->ForwardBackward(); // forward and backward process
        }
        loss /= param_.iter_
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值