2017-01-16 1 views
2

データを処理するためにfit_generatorを使用したいと思います。ケラス発電機を使用する時代は何ですか?

私はジェネレータが永久に動作している必要があり、そのサンプルエフェクトは次のエポックに到達する前にジェネレータから生成された要素の数を定義していることを理解しています。

ここでエポックとは何ですか?私たちがフィットすると、エポックはbatch_sizeに従って分割されたデータセット全体に対する実行です。しかし、ここでは、fit_generatorはジェネレータの各要素でtrain_on_batchを呼び出すように動作するため、batch_sizeは意味を持ちません。また、「データセット全体」などはありません。

私の質問です:samples_per_epochとnb_epochは意味がありますか?または、いずれの場合でも、ネットワークは、ジェネレータによって返されたsamples_per_epoch * nb_epochバッチで同じように訓練され、エポックは実際の意味を持ちませんか?

答えて

3

fit_generatorは、どのデータがジェネレータによって生成されるのかを知りません。ジェネレータクラスの責任は、データセット全体を処理することです。 samples_per_epochを使用すると、fit_generatorは単にエポックカウントを追跡します。チェックhere & here & here

+0

訓練を決定する唯一のことは、samples_per_epoch * nb_epochですか?残りは印刷用です。 – Labo

+0

あなたの2番目のリンクは興味深いので、間違っていましたが、samples_per_epoch * nb_epochはバッチの数ではなく、さまざまなバッチのサイズの合計です。 – Labo

+1

あなたは、合計トレーニングサイズとしてsamples_per_epochを設定し、ジェネレータが望むように分割して渡すことができます。しかし、私は通常、バッチサイズで丸めます。ジェネレータスレッドを実装しやすくします。あなたは1つ1つ私の答えをチェックすることができますhttp://stackoverflow.com/questions/41633087/how-to-use-keras-imagedatagenerator-with-a-siamese-or-tripple-networks/41645732#41645732 – indraforyou

関連する問題