2017-06-08 7 views
2

私はKerasにモデルを持っています。大きなデータセットのため、ジェネレータを使用してバッチでロードします。したがって、トレーニングルーチンはforループにカプセル化されています。Kerasバッチトレーニングコールバック連結

from keras.callbacks import History 

history = History() 

for epoch in xrange(100): 
    x_train,y_train=load_data_generator() 
    model.fit(x_train, y_train, nb_epoch=1, batch_size=1000, verbose=2, validation_data=(x_test, y_test), callbacks=[history]) 

トレーニングループ全体の履歴が理想的です。しかし、ケラスは、各ループ中の履歴を現在のバッチで上書きするようです。

質問1)すべてのエポックで簡単に履歴を連結するにはどうすればよいですか?言い換えれば、過去の歴史の中で中断したところでそれを再開するようにトリックします。

質問2)ケラスがエポックを完成するたびに、エポックの番号が印刷されます。私はバッチで訓練するので、エポックを簡単に更新する方法はありますか?私はフィッティングルーチンの 'initial_epoch'パラメータを見てきましたが、それは前のエポックに戻ってしまうように聞こえます。

答えて

0

initial_epoch = epochをフィットコール内に設定できますか?

これは、毎回新しいエポックであるため、ヒストリコールバックに情報を追加すると仮定します。エポックの数もループの各ステップで増分されます。

こちらがお役に立てば幸いです。

0

データジェネレータの使用方法の理解に役立つimage preprocessing in Kerasのマニュアルがあります。 fit()の代わりにfit_generator()関数を使用することで、両方の問題が解決されると思います。