ModelCheckpointの詳細
問題の説明
kerasを使用してモデルを構築し、トレーニング時にval_を検証します.accは1に達したが,試験データセットの上でモデルはまだ完全に収束していない.ModelCheckpointのパラメータ設定時に最適なモデルのみを保持するよう設定されているため、最新のより良いモデルを保存できません.
ModelCheckpoint
keras.callbacks.ModelCheckpoint(filepath,
monitor='val_loss',
verbose=0,
save_best_only=False,
save_weights_only=False,
mode='auto',
period=1)
filepath = "weights_{epoch:03d}-{val_loss:.4f}.h5"
は、epochおよび検証セットlossに対応する複数のファイルを生成します.モニタ:監視する値、通常はval_accまたはval_lossまたはaccまたはloss verbose:情報表示モード、0または1.1は出力epochモデルのために情報を保存し、デフォルトは0は出力しないことを示し、情報形はEpoch 00001:val_acc improved from -inf to 0.49240, saving model to/xxx/checkpoint/model_001-0.3902.h5 save_best_only:Trueに設定すると、検証セットで最もパフォーマンスの良いモデルmode:‘auto’,‘min’,‘max’のいずれかにのみ保存されます.save_best_only=Trueの場合、パフォーマンス最適モデルの評価基準を決定します.たとえば、モニタリング値がval_の場合accの場合、モードはmax、検出値はval_lossの場合、モードはminであるべきです.autoモードでは,評価準則は被モニタリング値の名前から自動的に推定される.save_weights_only:Trueに設定すると、モデルウェイトのみが保存されます.そうしないと、モデル全体(モデル構造、構成情報などを含む)period:CheckPoint間の間隔のepoch数EarlyStopping
keras.callbacks.EarlyStopping(monitor='val_loss',
patience=0,
verbose=0,
mode='auto')
モニタ値が改善すると、このコールバック関数は訓練問題解決
filepath = "model_{epoch:03d}-{val_acc:.4f}.h5" #
save_best_only=False ,#
save_weights_only=True ,#
patience = 10
その他のパラメータは、デフォルト値を使用します.2、EarlyStopppingを設定するパラメータ patience = 10,
monitor='acc'
その他のパラメータはすべてデフォルト値を使用します.3、トレーニングモデルトレーニング中、epochごとにモデルファイルが保存されます.モデルファイルが多すぎるため、TensorBoardを使用してトレーニング中のトレーニングセットのaccとlossを表示し、val_と組み合わせることができます.acc=1は,いくつかのepochのモデルが最適モデルであることを決定し,モデルのファイル名に基づいて最適モデルを見つけることができる.リファレンス
https://keras-cn.readthedocs.io/en/latest/other/callbacks/