1

Kerasオートエンコーダーがいつ収束するかを自動的に判断しようとしています。たとえば、「link」を参照してください。「可能な限りシンプルなオートエンコーダを構築しましょう」エポックの数は50で(損失値が収束するとき)ハードコードされます。しかし、ケアを使用してコードを作成すると、その数が50であることがわからない場合はどのようにコード化しますか? fit()に電話してもよろしいですか?Kerasのモデルフィッティングのエポック数の決定

答えて

2

この質問は、実際にはばかばかしく幅広く難しいです。エポックの数を設定する方法についての多くの技術があります。

  • 早期を停止する - この場合には、あなたが本当に高い数値にエポックの数を設定し、トレーニングをオフにするとき、次のエポックを超える改善飽き飽きではありません。 kerasにはあなたのために仕事をするEarlyStoppingという特別なオブジェクトがあります。
  • モデルチェックポイント - ここで再び非常に多くのエポックを設定し、最高のモデルw.r.tのみを保存するだけです。選択されたメトリックにこのシナリオでは、もう一度特別なcallbackがあります。

もちろん、たとえば次のようなシナリオがあります。増強学習を使用して停止時間やより複雑なシナリオを見つけることができます。ベイジアン超パラメータの設定でこれを選択しますが、多くの場合、改良を導入しない方がはるかに難しい方法です。

確かに、fitメソッドを再起動すると、モデルの内部状態が多く不安定になる可能性があるため予期しない動作が発生する可能性があります。このシナリオでは、モデル状態をリセットしていないtrain_on_batchを使用することを強くお勧めします。また、多くのファンシーなトレーニングシナリオが可能です。

+0

しかし、早期停止を使用する場合は注意してください。モデルが徐々に良くなっていますが、実際にはそれよりも前に巨大な損失の減少があります。しかし、これはあなたの損失があまり動かず、あなたの正確さが高くない場合です。私は通常、複数のモデルを訓練し、チェックポイントを設定します。 –

関連する問題