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 также могут содержать значения feed для добавления в вызов 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.3/api_docs/python/tf/estimator/SessionRunHook