tf.compat.v1.train.NanTensorHook
Отслеживает тензор потерь и останавливает обучение, если потери равны NaN.
Наследуется от: SessionRunHook
tf.compat.v1.train.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. |
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, которая скоро будет закрыта. |
© 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/api_docs/python/tf/compat/v1/train/NanTensorHook