tf.estimator.experimental.InMemoryEvaluatorHook
| Просмотреть исходный код на GitHub |
Хук для выполнения оценки в процессе обучения без контрольной точки.
Наследуется от: SessionRunHook
tf.estimator.experimental.InMemoryEvaluatorHook(
estimator, input_fn, steps=None, hooks=None, name=None, every_n_iter=100
)
Пример:
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])
Текущие ограничения этого подхода:
- Он не поддерживает многоузловую распределённую модель.
- Он не поддерживает сохраняемые объекты, отличные от переменных (такие как поддержка дерева усиления).
- Он не поддерживает пользовательскую логику сохранения (такую как поддержка ExponentialMovingAverage).
| Аргументы | |
|---|---|
estimator | Экземпляр tf.estimator.Estimator для вызова evaluate. |
input_fn | Эквивалентно аргументу input_fn для estimator.evaluate. Функция, которая создаёт входные данные для оценки. См. Создание функций входных данных для получения дополнительной информации. Функция должна создавать и возвращать один из следующих элементов:
|
steps | Эквивалентно аргументу steps для estimator.evaluate. Количество шагов, на которых требуется оценить модель. Если None, выполняет оценку до тех пор, пока input_fn не вызовет исключение конца ввода. |
hooks | Эквивалентно аргументу hooks для estimator.evaluate. Список экземпляров подкласса SessionRunHook. Используется для обратного вызова внутри вызова оценки. |
name | Эквивалентно аргументу name для estimator.evaluate. Имя оценки, если пользователю нужно выполнить несколько оценок на разных наборах данных, например, на обучающих и тестовых данных. Метрики для разных оценок сохраняются в отдельных папках и отображаются отдельно в TensorBoard. |
every_n_iter | int, выполняет оценку один раз каждые N итераций обучения. |
| Возможные исключения | |
|---|---|
ValueError | если every_n_iter не положительно или это обучение не на одном узле. |
Методы
after_create_session
after_create_session(
session, coord
)
Выполняет первую оценку, показывающую метрики оценки до начала обучения.
after_run
after_run(
run_context, run_values
)
Выполняет оценку.
before_run
before_run(
run_context
)
Вызывается перед каждым вызовом run().
Можно вернуть из этого вызова объект SessionRunArgs, указывающий операции или тензоры, которые нужно добавить к предстоящему вызову run(). Эти операции/тензоры будут выполняться вместе с операциями/тензорами, изначально переданными в исходный вызов run(). Аргументы run, которые вы возвращаете, также могут содержать данные для добавления к вызову run().
Аргумент run_context — это объект SessionRunContext, который предоставляет информацию о предстоящем вызове run(): изначально запрошенные операции/тензоры, сессия TensorFlow.
На этом этапе граф окончательно сформирован, и вы не можете добавлять операции.
| Аргументы | |
|---|---|
run_context | Объект SessionRunContext . |
| Возвращает | |
|---|---|
None или объект SessionRunArgs . |
begin
begin()
Построение графа оценки и оператора восстановления.
end
end(
session
)
Выполняет оценку для окончательной модели.
© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r1.15/api_docs/python/tf/estimator/experimental/InMemoryEvaluatorHook