tf.estimator.SessionRunHook
Обработчик для расширения вызовов MonitoredSession.run().
Методы
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/versions/r2.9/api_docs/python/tf/estimator/SessionRunHook