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/versions/r2.9/api_docs/python/tf/data/experimental/enable_debug_mode