當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python tf.estimator.experimental.stop_if_no_increase_hook用法及代碼示例


如果指標在給定的最大步長內沒有增加,則創建掛鉤以停止。

用法

tf.estimator.experimental.stop_if_no_increase_hook(
    estimator, metric_name, max_steps_without_increase, eval_dir=None, min_steps=0,
    run_every_secs=60, run_every_steps=None
)

參數

  • estimator tf.estimator.Estimator 實例。
  • metric_name str ,要跟蹤的指標。 "loss"、"accuracy"等
  • max_steps_without_increase int ,在給定指標沒有增加的情況下的最大訓練步數。
  • eval_dir 如果設置,則包含帶有評估指標的摘要文件的目錄。默認情況下,將使用estimator.eval_dir()
  • min_steps int ,如果全局步長小於此值,則永遠不會請求停止。默認為 0。
  • run_every_secs 如果指定,則以 run_every_secs 秒的間隔調用 should_stop_fn。默認為 60 秒。必須設置這個或run_every_steps
  • run_every_steps 如果指定,則每 run_every_steps 步驟調用 should_stop_fn。必須設置這個或run_every_secs

返回

  • SessionRunHook 類型的 early-stopping 鉤子,它定期檢查給定的指標是否顯示超過給定的最大訓練步數沒有增加,如果為真則啟動提前停止。

使用示例:

estimator = ...
# Hook to stop training if accuracy does not increase in over 100000 steps.
hook = early_stopping.stop_if_no_increase_hook(estimator, "accuracy", 100000)
train_spec = tf.estimator.TrainSpec(..., hooks=[hook])
tf.estimator.train_and_evaluate(estimator, train_spec, ...)

警告:當前實現支持 early-stopping 在本地模式下進行訓練和評估。在分布式模式下,可以停止訓練,但評估(這是一項單獨的工作)將無限期地等待新模型檢查點的評估,因此您將需要其他方法來檢測和停止它。分布式模式下的Early-stopping 評估需要更改train_and_evaluate API,並將在未來的修訂版中解決。

相關用法


注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.estimator.experimental.stop_if_no_increase_hook。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。