tf.data.experimental.enable_debug_mode
Включает режим отладки для tf.data.
tf.data.experimental.enable_debug_mode()
Пример использования модуля pdb:
import tensorflow as tf import pdb tf.data.experimental.enable_debug_mode() def func(x): # Python 3.7 and older requires `pdb.Pdb(nosigint=True).set_trace()` pdb.set_trace() x = x + 1 return x dataset = tf.data.Dataset.from_tensor_slices([1, 2, 3]) dataset = dataset.map(func) for item in dataset: print(item)
Режим отладки оказывает два эффекта:
1) Все преобразования, которые вносят асинхронность, параллелизм или недетерминированность в выполнение входного конвейера, будут выполняться синхронно, последовательно и детерминированно.
2) Все пользовательские функции, передаваемые в преобразования tf.data, такие как map, будут обёрнуты в tf.py_function, чтобы их тело выполнялось «немедленно» как функция Python, а не как трассируемый граф TensorFlow, что является поведением по умолчанию. Обратите внимание: даже при включённом режиме отладки пользовательская функция по-прежнему трассируется для определения формы и типа её выходных данных; в результате любые инструкции print или точки останова сработают один раз во время трассировки, прежде чем начнётся фактическое выполнение входного конвейера.
Примечание: Поскольку настройка режима отладки влияет на создание входного конвейера tf.data, её следует включить до определения любых объектов tf.data.
| Вызывает исключение | |
|---|---|
ValueError | При вызове в режиме графа. |
© 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/data/experimental/enable_debug_mode