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


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


創建 early-stopping 掛鉤。

用法

tf.estimator.experimental.make_early_stopping_hook(
    estimator, should_stop_fn, run_every_secs=60, run_every_steps=None
)

參數

  • estimator tf.estimator.Estimator 實例。
  • should_stop_fn callable ,不帶參數並返回 bool 的函數。如果函數返回 True ,停止將由酋長發起。
  • 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 定期執行 should_stop_fn 並在函數返回 True 時啟動提前停止。

拋出

  • TypeError 如果 estimator 不是 tf.estimator.Estimator 類型。
  • ValueError 如果同時設置了run_every_secsrun_every_steps

返回當 should_stop_fn 返回 True 時停止訓練的 SessionRunHook

使用示例:

estimator = ...
hook = early_stopping.make_early_stopping_hook(
    estimator, should_stop_fn=make_stop_fn(...))
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.make_early_stopping_hook。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。