Тензор потока: сохранение тензоров на графике в файл (или изображение) - PullRequest
0 голосов
/ 10 января 2019

В настоящее время у меня есть сложный набор операций, которые итеративно создают изображения и передают их в процессы, которые будут использоваться. Это часть очень огромного и сложного графика. Я хотел бы убедиться, что эти изображения создаются правильно.

Обычно для отладки у нас есть tf.Print, который создает запрет операции с побочным эффектом печати на экране.

Есть ли
а) Как я могу сохранить очень большой промежуточный тензор в файл?
б) Какой-то способ специально хранить промежуточные тензорные изображения в файл (или на экран)?

Очевидно, что если у меня есть вычисленный числовой тензор, это не проблема, поскольку я могу визуализировать его, используя imshow matplotlib, но как символический тензор не так очевидно, как это сделать.

Я мог бы сохранить связку промежуточных тензоров для оценки с помощью sess.run, но, поскольку мой код спроектирован, будет очень трудно вручную получить доступ и собрать их все.

1 Ответ

0 голосов
/ 10 января 2019

Лучший способ сохранить тензоры с пространственными корреляциями (изображения, подобные тензорам) в потоке тензоров - через tf.summary.image. Посмотрите учебник по тензорной доске , чтобы узнать, как все это сочетается друг с другом, но суть выглядит следующим образом:

tf.summary.image("img", img)
merged = tf.summary.merge_all()
train_writer = tf.summary.FileWriter('logs', sess.graph)
for i in range(num_iters):
    summary = sess.run(merged)
    train_writer.add_summary(summary, i)

Затем запустите тензорную доску:

tensorboard --logdir logs

Затем перейдите на localhost:6006 в браузере, чтобы просмотреть сводные данные.

Недостатком этого подхода является то, что у вас нет точного контроля зернистости того, что вы видите, если вы не укажете явно (например, tf.summary.image("img", img[...,10]))

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