Tensorflow:将图形中的张量保存到文件(或图像)中

时间:2019-01-10 04:04:09

标签: python image tensorflow

我目前有一组复杂的操作,这些操作可以迭代地创建图像并将它们提供给要使用的进程。这是非常庞大而复杂的图的一部分。我想确保正确创建了这些图像。

通常用于调试的tf.Print用于创建无操作,具有打印到屏幕的副作用。

有没有
a)我可以以某种方式将非常大的中间张量存储到文件中吗?
b)专门将中间张量图像存储到文件(或屏幕)的某种方法?

很显然,如果我有一个评估的数字张量,这是没有问题的,因为我可以使用matplotlib的imshow对其进行可视化,但是作为符号张量,如何执行它并不是很明显。

我可以保存一堆中间张量以使用sess.run进行评估,但是我的代码是通过结构方式来构造的,因此很难手动访问并收集所有这些张量。

1 个答案:

答案 0 :(得分:0)

在张量流中保存具有空间相关性(例如张量的图像)的张量的最佳方法是通过tf.summary.image。查看tensorboard tutorial,了解它们如何组合在一起,但症结所在如下:

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])),否则您对所看到的切片没有很好的控制力