Я отлаживаю код тензорного потока, более конкретно, я проверяю значения тензора внутри map_func
. Чтобы понять, работает ли функция карты так, как задумано, я хотел бы проверить значения тензора в течение 2-3 итераций. Вот минимальный воспроизводимый пример:
import tensorflow as tf
from pathlib import Path
train_images_dir = Path(r"/data/images_dataset")
tf_images_ds = tf.data.Dataset.list_files(str(train_images_dir / "*/*"))
def test_breakpoint(file_path):
print(str(file_path)) # insert breakpoint HERE
return file_path, True
tf_images_ds = tf_images_ds.map(test_breakpoint)
count = sum(1 for _ in tf_images_ds)
print(count)
Когда я выполняю этот код, print(str(file_path))
возвращает Tensor("args_0:0", shape=(), dtype=string)
. Тем не менее, я хотел бы записать / распечатать фактическое строковое значение из этого тензора.
Использование файла журнала - один из способов отладки, однако, я бы предпочел отлаживать, используя точки останова в моей PyCharm IDE. Когда я вставляю точку останова в строку print(str(file_path))
, отладочный запуск этого сценария полностью пропускает точку останова.
Зависимости: tenenflow 2.1.0, python 3.7