Spec-Zone.ru › TensorFlow 2.9

tf.debugging.experimental.enable_dump_debug_info

Включить вывод отладочной информации из программы TensorFlow.

Просмотр псевдонимов

Псевдонимы для миграции

См. Руководство по миграции для получения дополнительных сведений.

tf.compat.v1.debugging.experimental.enable_dump_debug_info

tf.debugging.experimental.enable_dump_debug_info(
    dump_root,
    tensor_debug_mode=DEFAULT_TENSOR_DEBUG_MODE,
    circular_buffer_size=1000,
    op_regex=None,
    tensor_dtypes=None
)

Отладочная информация выводится в каталог на файловой системе, указанный как dump_root.

Выводимая отладочная информация может быть обработана интерфейсами отладчиков.

Файлы в каталоге вывода содержат следующую информацию:

  • Конструкцию функций TensorFlow (например, компиляцию Python-функций, декорированных @tf.function), типы операций, имена (если доступны), контекст, входные и выходные тензоры и связанные трассировки стека.
  • Выполнение операций (ops) и функций TensorFlow и их трассировки стека, типы операций, имена (если доступны) и контексты. Кроме того, в зависимости от значения аргумента tensor_debug_mode (см. раздел Аргументы ниже), будут выводиться значения выходных тензоров или более краткие сводки значений тензоров.
  • Снимок Python-исходных файлов, участвующих в выполнении программы TensorFlow.

После включения вывод можно отключить с помощью соответствующего метода disable_dump_debug_info() в том же пространстве имен Python. Вызов этого метода более одного раза с тем же dump_root является идемпотентным. Вызов этого метода более одного раза с разными tensor_debug_mode приводит к ValueError. Вызов этого метода более одного раза с разными circular_buffer_size приводит к ValueError. Вызов этого метода с другим dump_root отменяет ранее включенный dump_root.

Пример использования:

tf.debugging.experimental.enable_dump_debug_info('/tmp/my-tfdbg-dumps')

# Code to build, train and run your TensorFlow model...
Примечание: Если ваш код выполняется на TPUs, убедитесь, что вы вызвали tf.config.set_soft_device_placement(True) перед вызовом tf.debugging.experimental.enable_dump_debug_info(), так как этот API использует автоматическую внешнюю компиляцию на TPUs. Например:
tf.config.set_soft_device_placement(True)
tf.debugging.experimental.enable_dump_debug_info(
    logdir, tensor_debug_mode="FULL_HEALTH")

resolver = tf.distribute.cluster_resolver.TPUClusterResolver(tpu='')
strategy = tf.distribute.TPUStrategy(resolver)
with strategy.scope():
  # ...
Аргументы
dump_root Путь к каталогу, куда будет записана информация вывода.
tensor_debug_mode Режим отладки значений тензора, в виде строки. В настоящее время поддерживаются следующие варианты:
  • "NO_TENSOR": (По умолчанию) Отслеживает только выходные тензоры всех выполненных операций (включая те, которые выполняются жадно на уровне Python или как часть графа TensorFlow) и функций, не извлекая никакой информации из значений тензоров.
  • "CURT_HEALTH": Для каждого тензора плавающей точки (например, тензоров с типами, такими как float32, float64 и bfloat16), извлекает двоичный бит, указывающий содержит ли он -бесконечность, +бесконечность или NaN.
  • "CONCISE_HEALTH": Для каждого тензора с типом с плавающей точкой извлекает общее количество элементов и количество элементов -бесконечности, +бесконечности и NaN.
  • "FULL_HEALTH": Для каждого тензора с типом с плавающей точкой извлекает тип, ранг (количество измерений), общее количество элементов и количество элементов -бесконечности, +бесконечности и NaN.
  • "SHAPE": Для каждого тензора (независимо от типа) извлекает его тип, ранг, общее количество элементов и форму.
circular_buffer_size Размер кольцевых буферов для событий выполнения. Эти кольцевые буферы предназначены для уменьшения накладных расходов на отладку вывода. Они содержат самые последние события отладки, относящиеся к жадному выполнению операций и tf.function и трассировки значений тензоров, вычисленных внутри tf.functions. Они записываются в файловую систему только при вызове соответствующего метода сброса (см. описание возвращаемых значений ниже). Ожидается, что это целое число. Если значение <= 0, поведение кольцевого буфера будет отключено, т.е. события отладки выполнения будут записываться в файловые записи таким же образом, как и события, не связанные с выполнением, такие как создание операций и снимки исходных файлов.
op_regex Выводить данные только из тензоров, типы операций которых соответствуют регулярному выражению (через Python's re.match()). "Тип операции" относится к именам операций TensorFlow (например, "MatMul", "LogSoftmax"), которые могут повторяться в функции TensorFlow. Это не относится к именам узлов (например, "dense/MatMul", "dense_1/MatMul_1"), которые уникальны в пределах функции.
  • Пример 1: Вывод данных тензора только из операций MatMul и Relu op_regex="^(MatMul|Relu)$".
  • Пример 2: Вывод тензоров из всех операций кроме Relu: op_regex="(?!^Relu$)". Этот фильтр действует в логическом отношении "И" с tensor_dtypes.
  • tensor_dtypes Выводить данные только из тензоров указанных типов. Этот необязательный аргумент может быть в любом из следующих форматов:
  • список или кортеж DType объектов или строк, которые можно преобразовать в DType объекты с помощью tf.as_dtype(). Примеры:
    • tensor_dtype=[tf.float32, tf.float64],
    • tensor_dtype=["float32", "float64"],
    • tensor_dtypes=(tf.int32, tf.bool),
    • tensor_dtypes=("int32", "bool")
  • вызываемый объект, принимающий один аргумент DType и возвращающий Python boolean, указывающий, должен ли тип включаться в вывод данных. Примеры:
    • tensor_dtype=lambda dtype: dtype.is_integer. Этот фильтр действует в логическом отношении "И" с op_regex.
  • Возвращаемое значение
    Экземпляр DebugEventsWriter, используемый функцией вывода. Вызывающий объект может использовать его методы сброса, включая FlushNonExecutionFiles() и FlushExecutionFiles().

    © 2022 The TensorFlow Authors. All rights reserved.
    Licensed under the Creative Commons Attribution License 4.0.
    Code samples licensed under the Apache 2.0 License.
    https://www.tensorflow.org/versions/r2.9/api_docs/python/tf/debugging/experimental/enable_dump_debug_info

    Spec-Zone.ru

    Настройки Оффлайн Что нового Помощь О нас
    Spec-Zone .ru
    спецификации, руководства, описания, API