tf.profiler.ProfileOptionBuilder
Построитель параметров для профилирования API.
tf.profiler.ProfileOptionBuilder(
options=None
)
Для ознакомления с параметрами см. https://github.com/tensorflow/tensorflow/tree/master/tensorflow/core/profiler/g3doc/options.md
# Users can use pre-built options:
opts = (
tf.profiler.ProfileOptionBuilder.trainable_variables_parameter())
# Or, build your own options:
opts = (tf.compat.v1.profiler.ProfileOptionBuilder()
.with_max_depth(10)
.with_min_micros(1000)
.select(['accelerator_micros'])
.with_stdout_output()
.build()
# Or customize the pre-built options:
opts = (tf.compat.v1.profiler.ProfileOptionBuilder(
tf.profiler.ProfileOptionBuilder.time_and_memory())
.with_displaying_options(show_name_regexes=['.*rnn.*'])
.build())
# Finally, profiling with the options:
_ = tf.compat.v1.profiler.profile(tf.compat.v1.get_default_graph(),
run_meta=run_meta,
cmd='scope',
options=opts)
| Аргументы | |
|---|---|
options | Необязательный начальный словарь параметров для начала. |
Методы
account_displayed_op_only
account_displayed_op_only(
is_true
)
Учитывать только статистику отображаемых узлов профилировщика.
| Аргументы | |
|---|---|
is_true | Если True, учитываются только статистические данные узлов, которые в конечном итоге отображаются в результатах. В противном случае статистика узла учитывается его родителями, если их типы соответствуют 'account_type_regexes', даже если узел скрыт в выводе, например, с помощью hide_name_regexes. |
| Возвращаемое значение | |
|---|---|
| self |
build
build()
Создать параметр профилирования.
| Возвращаемое значение | |
|---|---|
| Словарь параметров профилирования. |
float_operation
@staticmethod float_operation()
Параметры, используемые для профилирования операций с плавающей точкой.
См. https://github.com/tensorflow/tensorflow/tree/master/tensorflow/core/profiler/g3doc/profile_model_architecture.md о нюансах вычисления операций с плавающей точкой.
| Возвращаемое значение | |
|---|---|
| Словарь параметров профилирования. |
order_by
order_by(
attribute
)
Сортировать отображаемые узлы профилировщика по атрибуту.
Поддерживаемые атрибуты включают микросекунды, байты, количество появлений, параметры и т. д. https://github.com/tensorflow/tensorflow/tree/master/tensorflow/core/profiler/g3doc/options.md
| Аргументы | |
|---|---|
attribute | Атрибут, которым обладает узел профилировщика. |
| Возвращаемое значение | |
|---|---|
| self |
select
select(
attributes
)
Выбрать атрибуты для отображения.
См. https://github.com/tensorflow/tensorflow/tree/master/tensorflow/core/profiler/g3doc/options.md для поддержки атрибутов.
| Аргументы | |
|---|---|
attributes | Список атрибутов, которыми обладает узел профилировщика. |
| Возвращаемое значение | |
|---|---|
| self |
time_and_memory
@staticmethod
time_and_memory(
min_micros=1, min_bytes=1, min_accelerator_micros=0, min_cpu_micros=0,
min_peak_bytes=0, min_residual_bytes=0, min_output_bytes=0
)
Показать время выполнения и потребление памяти операций.
| Аргументы | |
|---|---|
min_micros | Отображать только узлы профилировщика с временем выполнения не меньше этого значения. Суммирует время ускорителя и ЦП. |
min_bytes | Отображать только узлы профилировщика, запросившие выделение не менее этого количества байтов. |
min_accelerator_micros | Отображать только узлы профилировщика, потратившие не менее этого времени на ускоритель (например, на GPU). |
min_cpu_micros | Отображать только узлы профилировщика, потратившие не менее этого времени на ЦП. |
min_peak_bytes | Отображать только узлы профилировщика, использующие не менее этого количества байтов в пике (высокая отметка). Для узлов профилировщика, состоящих из нескольких узлов графа, суммирует максимальное потребление памяти узлов графа. |
min_residual_bytes | Отображать только узлы профилировщика, у которых после завершения Compute() не высвобождается не менее этого количества байтов. Для узлов профилировщика, состоящих из нескольких узлов графа, суммирует оставшееся потребление памяти узлов графа. |
min_output_bytes | Отображать только узлы профилировщика, имеющие не меньше этого количества байтов на выходе. Выходные данные необязательно выделены этим узлом профилировщика. |
| Возвращаемое значение | |
|---|---|
| Словарь параметров профилирования. |
trainable_variables_parameter
@staticmethod trainable_variables_parameter()
Параметры, используемые для профилирования параметров обучаемых переменных.
Обычно используется вместе с представлением 'scope'.
| Возвращаемое значение | |
|---|---|
| Словарь параметров профилирования. |
with_accounted_types
with_accounted_types(
account_type_regexes
)
Селективное подсчёт статистики на основе типов узлов.
Здесь 'types' означает свойства узлов профилировщика. По умолчанию профилировщик учитывает имя устройства (например, /job:xx/.../device:GPU:0) и тип операции (например, MatMul) как свойства узлов профилировщика. Пользователь также может ассоциировать настраиваемые 'types' с узлами профилировщика через протокол OpLogProto.
Например, пользователь может выбрать узлы профилировщика, размещённые на gpu:0 с помощью: account_type_regexes=['.*gpu:0.*']
Если ни одно из свойств узла не соответствует указанным выражениям регулярных выражений, узел не отображается и не учитывается.
| Аргументы | |
|---|---|
account_type_regexes | Список выражений регулярных выражений, определяющих типы. |
| Возвращаемое значение | |
|---|---|
| self. |
with_empty_output
with_empty_output()
Не генерировать побочные выводы.
with_file_output
with_file_output(
outfile
)
Вывести результат в файл.
with_max_depth
with_max_depth(
max_depth
)
Установить максимальную глубину отображения.
Глубина зависит от вида профилирования. Для представления 'scope' это глубина иерархии именованных областей (дерево), для представления 'op' это количество типов операций (список) и т.д.
| Аргументы | |
|---|---|
max_depth | Максимальная глубина отображаемой структуры данных. |
| Возвращаемое значение | |
|---|---|
| self |
with_min_execution_time
with_min_execution_time(
min_micros=0, min_accelerator_micros=0, min_cpu_micros=0
)
Отображать только узлы профилировщика, затратившие не меньше 'min_micros' времени.
| Аргументы | |
|---|---|
min_micros | Отображать только узлы профилировщика с временем выполнения не меньше этого значения. Суммирует время ускорителя и ЦП. |
min_accelerator_micros | Отображать только узлы профилировщика, потратившие не меньше этого времени на ускоритель (например, на GPU). |
min_cpu_micros | Отображать только узлы профилировщика, потратившие не меньше этого времени на ЦП. |
| Возвращаемое значение | |
|---|---|
| self |
with_min_float_operations
with_min_float_operations(
min_float_ops
)
Показывать только узлы профилировщика, потребляющие не менее 'min_float_ops'.
См. https://github.com/tensorflow/tensorflow/tree/master/tensorflow/core/profiler/g3doc/profile_model_architecture.md о предосторожностях при расчете операций с плавающей точкой.
| Аргументы | |
|---|---|
min_float_ops | Показывать только узлы профилировщика с операциями с плавающей точкой не менее этого значения. |
| Возвращаемое значение | |
|---|---|
| self |
with_min_memory
with_min_memory(
min_bytes=0, min_peak_bytes=0, min_residual_bytes=0, min_output_bytes=0
)
Показывать только узлы профилировщика, потребляющие не менее 'min_bytes'.
| Аргументы | |
|---|---|
min_bytes | Показывать только узлы профилировщика, которые запрашивают выделение не менее этих байтов. |
min_peak_bytes | Показывать только узлы профилировщика, использующие не менее этого количества байтов в пике (максимальное значение). Для узлов профилировщика, состоящих из нескольких узлов графа, суммируются максимальные значения байтов узлов графа. |
min_residual_bytes | Показывать только узлы профилировщика, имеющие не менее этого количества байтов, не освобожденных после завершения Compute(). Для узлов профилировщика, состоящих из нескольких узлов графа, суммируются оставшиеся байты узлов графа. |
min_output_bytes | Показывать только узлы профилировщика, имеющие не менее этого количества байтов вывода. Вывод не обязательно выделяется этим узлом профилировщика. |
| Возвращаемое значение | |
|---|---|
| self |
with_min_occurrence
with_min_occurrence(
min_occurrence
)
Показывать только узлы профилировщика, содержащие не менее 'min_occurrence' узлов графа.
«Узел» означает узел вывода профилировщика, который может быть строкой Python (вид кода), типом операции (вид операции) или узлом графа (вид графа/области). Строка Python включает все узлы графа, созданные этой строкой, в то время как тип операции включает все узлы графа этого типа.
| Аргументы | |
|---|---|
min_occurrence | Показывать узлы, содержащие не менее этого значения. |
| Возвращаемое значение | |
|---|---|
| self |
with_min_parameters
with_min_parameters(
min_params
)
Показывать только узлы профилировщика, содержащие не менее 'min_params' параметров.
«Параметры» обычно относятся к весам переменных TensorFlow. Это отражает «емкость» моделей.
| Аргументы | |
|---|---|
min_params | Показывать узлы профилировщика, содержащие количество параметров не менее этого значения. |
| Возвращаемое значение | |
|---|---|
| self |
with_node_names
with_node_names(
start_name_regexes=None, show_name_regexes=None, hide_name_regexes=None,
trim_name_regexes=None
)
Регулярные выражения для выбора узлов профилировщика для отображения.
После вычисления 'with_accounted_types', 'with_node_names' вычисляются следующим образом:
Для структуры данных профиля профилировщик сначала находит узлы профилировщика, соответствующие 'start_name_regexes', и начинает отображать узлы профилировщика оттуда. Затем, если узел соответствует 'show_name_regexes' и не соответствует 'hide_name_regexes', он отображается. Если узел соответствует 'trim_name_regexes', профилировщик прекращает дальнейший поиск по этому ответвлению.
| Аргументы | |
|---|---|
start_name_regexes | Список регулярных выражений имён узлов для начала отображения. |
show_name_regexes | Список регулярных выражений имён узлов для отображения. |
hide_name_regexes | Список регулярных выражений имён узлов, которые должны быть скрыты. |
trim_name_regexes | Список регулярных выражений имён узлов, где следует остановить поиск. |
| Возвращаемое значение | |
|---|---|
| self |
with_pprof_output
with_pprof_output(
pprof_file
)
Генерировать файл профиля pprof в формате gzip.
Для использования файла pprof:
pprof -png --nodecount=100 --sample_index=1
| Аргументы | |
|---|---|
pprof_file | Имя файла для вывода, обычно с расширением .pb.gz. |
| Возвращаемое значение | |
|---|---|
| self. |
with_stdout_output
with_stdout_output()
Вывести результат в стандартный вывод.
with_step
with_step(
step
)
Какой шаг профилирования использовать.
Здесь 'шаг' относится к шагу, определенному API Profiler.add_step().
| Аргументы | |
|---|---|
step | При наличии нескольких шагов профилей, выбрать профиль какого шага использовать. Если -1, использовать среднее значение по всем доступным шагам. |
| Возвращаемое значение | |
|---|---|
| self |
with_timeline_output
with_timeline_output(
timeline_file
)
Сгенерировать файл трассировки в формате json.
© 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/profiler/ProfileOptionBuilder