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/r2.3/api_docs/python/tf/estimator/experimental/InMemoryEvaluatorHook