tf.estimator.LoggingTensorHook
Печатает заданные тензоры каждые N локальных шагов, каждые N секунд или в конце.
Наследуется от: SessionRunHook
tf.estimator.LoggingTensorHook(
tensors, every_n_iter=None, every_n_secs=None, at_end=False, formatter=None
)
Тензоры будут выводиться в журнал с уровнем INFO. Если журналы не отображаются, добавьте следующую строку после импортов:
tf.compat.v1.logging.set_verbosity(tf.compat.v1.logging.INFO)
Обратите внимание, что если at_end имеет значение True, то tensors не должен включать в себя тензоры, чьё вычисление вызывает побочные эффекты, такие как потребление дополнительных входных данных.
| Аргументы | |
|---|---|
tensors | словарь, сопоставляющий строковые теги с тензорами/именами тензоров, или список тензоров/имён тензоров. |
every_n_iter | для печати значений tensors каждые N локальных шагов, совершённых на текущем узле. |
every_n_secs | для печати значений tensors каждые N секунд. Должен быть указан ровно один из every_n_iter и every_n_secs. |
at_end | указывает, нужно ли печатать значения tensors в конце выполнения. |
formatter | функция, которая принимает словарь tag->Tensor и возвращает строку. Если None использует стандартную печать, все тензоры будут напечатаны. |
| Исключения | |
|---|---|
ValueError | если every_n_iter не является положительным числом. |
Методы
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/LoggingTensorHook