tf.estimator.NanTensorHook
Отслеживает тензор потерь и останавливает обучение, если значение потерь равно NaN.
Наследуется от: SessionRunHook
tf.estimator.NanTensorHook(
loss_tensor, fail_on_nan_loss=True
)
Может либо завершиться с исключением, либо просто остановить обучение.
| Аргументы | |
|---|---|
loss_tensor | Tensor, тензор потерь. |
fail_on_nan_loss | bool, нужно ли генерировать исключение, когда значение потерь равно NaN. |
Методы
after_create_session
after_create_session(
session, coord
)
Вызывается при создании новой сессии TensorFlow.
Это вызывается для сигнализации хукам о том, что была создана новая сессия. Это имеет два существенных отличия от ситуации, в которой вызывается begin.
- При вызове этого метода граф завершается, и к нему больше нельзя добавлять операции.
- Этот метод также будет вызываться в результате восстановления обернутой сессии, а не только в начале всей сессии.
| Аргументы | |
|---|---|
session | Создание TensorFlow Session. |
coord | Объект Coordinator, который отслеживает все потоки. |
after_run
after_run(
run_context, run_values
)
Вызывается после каждого вызова run().
Аргумент run_values содержит результаты запрошенных операций/тензоров функцией before_run().
Аргумент run_context — тот же, что и переданный в вызов before_run . run_context.request_stop() может быть вызван для остановки итерации.
Если session.run() вызывает какие-либо исключения, то after_run() не вызывается.
| Аргументы | |
|---|---|
run_context | Объект SessionRunContext . |
run_values | Объект SessionRunValues. |
before_run
before_run(
run_context
)
Вызывается перед каждым вызовом run().
Можно вернуть из этого вызова объект SessionRunArgs, указывающий операции или тензоры для добавления в предстоящий вызов run(). Эти операции/тензоры будут выполнены вместе с операциями/тензорами, изначально переданными в исходный вызов run(). Аргументы run, которые вы возвращаете, также могут содержать значения для добавления в вызов run().
Аргумент run_context — это объект SessionRunContext, который предоставляет информацию о предстоящем вызове run(): первоначально запрошенные операция/тензоры, сессия TensorFlow.
На этом этапе граф завершен, и вы больше не можете добавлять операции.
| Аргументы | |
|---|---|
run_context | Объект SessionRunContext . |
| Возвращаемое значение | |
|---|---|
None или объект SessionRunArgs . |
begin
begin()
Вызывается один раз перед использованием сессии.
При вызове, текущим графом будет тот, который будет запущен в сессии. Хук может изменить граф, добавив в него новые операции. После вызова begin() граф будет завершен, и другие обратные вызовы больше не смогут его изменять. Второй вызов begin() на одном и том же графе не должен изменять граф.
end
end(
session
)
Вызывается в конце сессии.
Аргумент session может быть использован в случае, если хук хочет выполнить конечные операции, такие как сохранение последнего контрольного пункта.
Если session.run() вызывает исключение, отличное от OutOfRangeError или StopIteration, то end() не вызывается. Обратите внимание на разницу в поведении между end() и after_run(), когда session.run() вызывает OutOfRangeError или StopIteration. В этом случае end() вызывается, но after_run() не вызывается.
| Аргументы | |
|---|---|
session | Сессия TensorFlow, которая будет закрыта. |
© 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/NanTensorHook