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