當監控的指標停止改進時停止訓練。
繼承自:Callback
用法
tf.keras.callbacks.EarlyStopping(
monitor='val_loss', min_delta=0, patience=0, verbose=0,
mode='auto', baseline=None, restore_best_weights=False
)
參數
-
monitor
要監控的數量。 -
min_delta
被監測數量的最小變化被認為是改進,即小於min_delta的絕對變化,將被視為沒有改進。 -
patience
訓練停止後沒有改善的 epoch 數。 -
verbose
詳細模式。 -
mode
{"auto", "min", "max"}
之一。min
模式下,當監測的數量停止減少時,訓練將停止;在"max"
模式下,當監控的數量停止增加時它會停止;在"auto"
模式下,根據監控量的名稱自動推斷方向。 -
baseline
監控數量的基線值。如果模型沒有顯示出對基線的改進,則訓練將停止。 -
restore_best_weights
是否從監測量的最佳值的epoch恢複模型權重。如果為 False,則使用在訓練的最後一步獲得的模型權重。無論相對於baseline
的性能如何,都會恢複一個紀元。如果在baseline
上沒有任何 epoch 得到改進,則將針對patience
epoch 運行訓練,並從該集合中的最佳 epoch 恢複權重。
假設訓練的目標是最小化損失。這樣,要監控的指標將是 'loss'
,模式將是 'min'
。 model.fit()
訓練循環將在每個 epoch 結束時檢查損失是否不再減少,如果適用的話,考慮 min_delta
和 patience
。一旦發現它不再減少,model.stop_training
將被標記為 True 並且訓練終止。
要監控的數量需要在logs
dict 中可用。為此,請在 model.compile()
傳遞損失或指標。
例子:
callback = tf.keras.callbacks.EarlyStopping(monitor='loss', patience=3)
# This callback will stop the training when there is no improvement in
# the loss for three consecutive epochs.
model = tf.keras.models.Sequential([tf.keras.layers.Dense(10)])
model.compile(tf.keras.optimizers.SGD(), loss='mse')
history = model.fit(np.arange(100).reshape(5, 20), np.zeros(5),
epochs=10, batch_size=1, callbacks=[callback],
verbose=0)
len(history.history['loss']) # Only 4 epochs are run.
4
相關用法
- Python tf.keras.callbacks.ReduceLROnPlateau用法及代碼示例
- Python tf.keras.callbacks.CSVLogger用法及代碼示例
- Python tf.keras.callbacks.TensorBoard用法及代碼示例
- Python tf.keras.callbacks.Callback用法及代碼示例
- Python tf.keras.callbacks.ModelCheckpoint用法及代碼示例
- Python tf.keras.callbacks.LambdaCallback用法及代碼示例
- Python tf.keras.callbacks.BackupAndRestore用法及代碼示例
- Python tf.keras.callbacks.LearningRateScheduler用法及代碼示例
- Python tf.keras.callbacks.History用法及代碼示例
- Python tf.keras.applications.inception_resnet_v2.preprocess_input用法及代碼示例
- Python tf.keras.metrics.Mean.merge_state用法及代碼示例
- Python tf.keras.layers.InputLayer用法及代碼示例
- Python tf.keras.layers.serialize用法及代碼示例
- Python tf.keras.metrics.Hinge用法及代碼示例
- Python tf.keras.experimental.WideDeepModel.compute_loss用法及代碼示例
- Python tf.keras.metrics.SparseCategoricalAccuracy.merge_state用法及代碼示例
- Python tf.keras.metrics.RootMeanSquaredError用法及代碼示例
- Python tf.keras.applications.resnet50.preprocess_input用法及代碼示例
注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.keras.callbacks.EarlyStopping。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。