tf.train.LoggingTensorHook
Печатает указанные тензоры каждые N локальных шагов, каждые N секунд или в конце.
Наследуется от: SessionRunHook
tf.train.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/r1.15/api_docs/python/tf/train/LoggingTensorHook