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, которая скоро будет закрыта. |
© 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/SessionRunHook