web-dev-qa-db-ja.com

Python / Keras-各エポック予測にアクセスする方法は?

Kerasを使用して時系列を予測しています。標準として、私は20エポックを使用しています。私のニューラルネットワークは、20のエポックのそれぞれについて何を予測したのか知りたいです。

Model.predictを使用すると、すべてのエポックの中で1つの予測しか得られません(Kerasがそれをどのように選択するかはわかりません)。私はすべての予測、または少なくとも10のベストが欲しいです。

誰かが私を助ける方法を知っていますか?

13
abutremutante

ここには少し混乱があると思います。

エポックはニューラルネットワークのトレーニング中にのみ使用されるため、トレーニングが停止すると(この場合、20番目のエポックの後)、重みは最後のエポックで計算された重みに対応します。

Kerasは、各エポック後のトレーニング中に検証セットに現在の損失値を出力します。各エポックの後の重みが保存されていない場合、それらは失われます。 ModelCheckpoint コールバックを使用して各エポックの重みを保存してから、モデルにload_weightsを使用して重みをロードし直すことができます。

Callback をサブクラス化し、on_Epoch_end関数内のモデルでpredictを呼び出すことにより、適切なコールバックを実装することにより、各トレーニングエポックの後に予測を計算できます。

次に、それを使用するには、コールバックをインスタンス化し、リストを作成して、model.fitへのキーワード引数コールバックとして使用します。

10