3

私はカフェLeNetチュートリアルhereをチェックしていたし、疑問が頭に浮かんだ。これらの違いは何カフェLeNet:solver.step `の違い(1)`​​と `solver.net.forward()`

2つのコード:

self.solver.step(1) 

self.solver.net.forward() # train net 

彼らは両方とも、少なくともコメントに応じてネットワークを訓練するように見えます。

個人的に私は最初のものは学習データにネットワークを訓練し、nettest_net両方の重みを更新しますが、二つだけのデータのバッチを転送し、前のステップから学んだの重みを適用しているようだと思います。

私は正しいと思うなら、チュートリアルの2番目のコードの目的は何ですか?なぜコードはnet.forwardですか? solver.step(1)これを行うことはできませんか?お時間を

おかげ

答えて

6

ステップは、すべての3つのフェーズをカバーする完全な一回の反復を、行います。前方評価、後方伝播、および更新の転送先はで、最初の呼び出しのみです。署名(パラメータリスト)にも違いがあります。

+0

thanks ... batch_sizeが100(2000イメージのうち)の場合、100バッチまたは2000バッチで3つのフェーズを実行しますか? – Cypher

+2

ステップでは1回の反復しか行われません。 20個のバッチ(2000個全ての入力)のフルセットを* epoch *と呼びます。 – Prune

+0

助けになるのはうれしいです。投票と緑色のチェックをいただきありがとうございます。 – Prune

関連する問題