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


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


在沒有檢查點的情況下在訓練中運行評估的掛鉤。

繼承自:SessionRunHook

用法

tf.estimator.experimental.InMemoryEvaluatorHook(
    estimator, input_fn, steps=None, hooks=None, name=None, every_n_iter=100
)

參數

  • estimator 調用評估的tf.estimator.Estimator 實例。
  • input_fn 相當於input_fn參數為estimator.evaluate.構造用於評估的輸入數據的函數。看創建輸入函數了解更多信息。該函數應構造並返回以下內容之一:
    • 'tf.data.Dataset' 對象:Dataset 對象的輸出必須是具有與以下相同約束的元組(特征、標簽)。
    • 元組(特征,標簽):其中 featuresTensor 或字符串特征名稱字典 TensorlabelsTensor 或字符串標簽名稱字典 Tensorfeatureslabels 都被 model_fn 消耗。它們應該滿足輸入對model_fn 的期望。
  • steps 等效於 steps arg 到 estimator.evaluate 。評估模型的步驟數。如果 None ,評估直到 input_fn 引發 end-of-input 異常。
  • hooks 等效於 hooks arg 到 estimator.evaluateSessionRunHook 子類實例列表。用於評估調用中的回調。
  • name 等效於 name arg 到 estimator.evaluate 。如果用戶需要對不同的數據集(例如訓練數據與測試數據)運行多個評估,則評估的名稱。不同評估的指標保存在單獨的文件夾中,並單獨顯示在 tensorboard 中。
  • every_n_iter int ,每 N 次訓練迭代運行一次評估器。

拋出

  • ValueError 如果every_n_iter 是非正數或者不是單機訓練

例子:

def train_input_fn():
  ...
  return train_dataset

def eval_input_fn():
  ...
  return eval_dataset

estimator = tf.estimator.DNNClassifier(...)

evaluator = tf.estimator.experimental.InMemoryEvaluatorHook(
    estimator, eval_input_fn)
estimator.train(train_input_fn, hooks=[evaluator])

這種方法的當前局限性是:

  • 它不支持multi-node 分布式模式。
  • 它不支持變量以外的可保存對象(例如增強樹支持)
  • 它不支持自定義保護程序邏輯(例如 ExponentialMovingAverage 支持)

相關用法


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