Spec-Zone.ru › TensorFlow

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), типы операций, имена (если доступны), контекст, входные и выходные тензоры, а также связанные с ними трассировки стека.
  • Выполнение операций TensorFlow (ops) и функций, а также их трассировки стека, типы операций, имена (если доступны) и контексты. Кроме того, в зависимости от значения аргумента 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...
Примечание: Если код выполняется на TPU, обязательно вызовите tf.config.set_soft_device_placement(True) перед вызовом tf.debugging.experimental.enable_dump_debug_info(), поскольку этот API использует автоматическую внешнюю компиляцию на TPU. Например:
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) извлекается один бит, указывающий, содержит ли он значения -infinity, +infinity или NaN.
  • "CONCISE_HEALTH": Для каждого тензора с плавающим типом данных извлекаются общее число элементов, а также число элементов со значениями -infinity, +infinity и NaN.
  • "FULL_HEALTH": Для каждого тензора с плавающим типом данных извлекаются тип данных, ранг (число измерений), общее число элементов, а также число элементов со значениями -infinity, +infinity и NaN.
  • "SHAPE": Для каждого тензора (независимо от типа данных) извлекаются его тип данных, ранг, общее число элементов и форма.
circular_buffer_size Размер кольцевых буферов для событий выполнения. Эти кольцевые буферы предназначены для уменьшения накладных расходов при сохранении отладочных данных. В них хранятся последние отладочные события, связанные с немедленным выполнением операций и tf.function, а также трассировки значений тензоров, вычисленных внутри tf.function. Они записываются в файловую систему только при вызове соответствующего метода сброса буфера (см. описание возвращаемых значений ниже). Ожидается целое число. Если значение <= 0, поведение кольцевого буфера отключается, то есть отладочные события выполнения записываются в файловые потоки так же, как и события, не связанные с выполнением, например создание операций и снимки исходных файлов.
op_regex Сохранять данные только для тензоров операций, типы которых соответствуют регулярному выражению (с помощью re.match() из Python). «Тип операции» обозначает имена операций 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")
  • объект callable, принимающий один аргумент 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/api_docs/python/tf/debugging/experimental/enable_dump_debug_info

    Spec-Zone.ru

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