Caffe LeNet:`solver.step(1)`和`solver.net.forward()`之间的区别

Cyp*_*her 6 python neural-network deep-learning caffe conv-neural-network

我在这里查看Caffe LeNet教程并想到了一个问题:

这两个代码之间有什么区别:

self.solver.step(1)
Run Code Online (Sandbox Code Playgroud)

self.solver.net.forward()  # train net
Run Code Online (Sandbox Code Playgroud)

他们似乎都至少根据评论来训练网络.

我个人认为,第一个训练训练数据网络,并同时更新的权重nettest_net,但第二个似乎只前进了一批数据,并从上一步骤应用学到的权重.

如果我认为是对的,那么教程中第二个代码的目的是什么?为什么代码做了net.forward?不能solver.step(1)做到这一点?

谢谢你的时间

Pru*_*une 9

step执行一次完整迭代,涵盖所有三个阶段:前向评估,后向传播和更新.对前锋的呼吁只会做到第一个.签名(参数列表)也有差异.

  • 步骤只进行一次迭代:一批100个图像.完整的20个批次(所有2000个输入)被称为*epoch*. (4认同)