Как отлаживать / оценивать код тензорного потока? - PullRequest
0 голосов
/ 09 апреля 2020

Я отлаживаю код тензорного потока, более конкретно, я проверяю значения тензора внутри 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...