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_context — это объект SessionRunContext, который предоставляет информацию о предстоящем вызове run(): первоначально запрошенные операции/тензоры, сессия TensorFlow.
На этом этапе граф завершен, и вы не можете добавлять операции.
| Аргументы | |
|---|---|
run_context | Объект SessionRunContext. |
| Возвращаемое значение | |
|---|---|
None или объект SessionRunArgs. |
begin
begin()
Построение графа оценки и восстановления операции.
end
end(
session
)
Выполняет оценку для окончательной модели.
© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.9/api_docs/python/tf/estimator/experimental/InMemoryEvaluatorHook