tf.estimator.ProfilerHook
Захватывает информацию о профилировании CPU/GPU каждые N шагов или секунд.
Наследуется от: SessionRunHook
tf.estimator.ProfilerHook(
save_steps=None, save_secs=None, output_dir='', show_dataflow=True,
show_memory=False
)
Это создает файлы с именем "timeline-
Дополнительную информацию можно найти по адресу: https://github.com/catapult-project/catapult/blob/master/tracing/README.md
| Аргументы | |
|---|---|
save_steps | int, сохранять профильные трассы каждые N шагов. Должно быть установлено ровно одно из save_secs и save_steps. |
save_secs | int или float, сохранять профильные трассы каждые N секунд. |
output_dir | string, каталог для сохранения профильных трасс. По умолчанию — текущий каталог. |
show_dataflow | bool, если True, добавлять события потока в трассу, соединяющую производителей и потребителей тензоров. |
show_memory | bool, если True, добавлять события снимков объектов в трассу, отображающие размеры и жизненные циклы тензоров. |
Методы
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/ProfilerHook