kerasのModelCheckpointが機能しない


8

私はケラスでモデルをトレーニングしようとしており、ModelCheckpointを使用して、監視された検証メトリック(私の場合はJaccardインデックス)に従って最適なモデルを保存しています。

テンソルボードでモデルが改善されているのを確認できますが、重みをロードしてモデルを評価しようとすると、まったく機能しません。さらに、重みが格納されるはずのファイルのタイムスタンプから、重みがまったく保存されていないことがわかります。タイムスタンプは、トレーニングを開始した時刻にほぼ対応しています。

誰かが以前にそのような問題に遭遇したことがありますか?

回答:


7

ModelCheckpoint(以外のmonitor)デフォルトのパラメータで実行しますか?

ModelCheckpoint使用するメトリックmodeタイプを指定するというパラメーターがあります。mode3つの値'min' 'max'を取ることができ、'auto'(これがデフォルトです):

  • min:メトリック(損失関数など)を最小化することを意味します。
  • max:メトリック(精度など)を最大化することを意味します。
  • auto:自分で何をすべきかを理解しようとします。コードを見ると、指標の名前にが含まれている'acc'かどうか、またはで始まるかどうかが確認され'fmeasure'ます。はいの場合はモードに設定されmax、そうでない場合はモードに設定されminます。

あなたのケースでは、最大化したい指標であるjaccardインデックスを監視するので、モードをに設定しmaxます。通常、「jaccard」には文字列「acc」が含まれているため、モードが設定されてautoいても正常に機能します。

ただし、メトリックに任意の名前を付けた場合(例:)my_metric、デフォルトのモードはに設定されます。これは、メトリックで最低のパフォーマンスminを達成する重みを格納することを意味します。これは、最初のエポックの重みです。

提案:次回はmode='max'確認してみてください。


はい、そうです。私はメトリックに名前を付け、intersection_over_unionおそらく最初のエポックからのものである最低のスコアを持つ重みを格納していました。それは非常に理にかなっています。ありがとう!
ILM91 2018

どういたしまして。お役に立てて嬉しいです!
MzdR 2018
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.