在TensorFlow中显示图形图像?

2024-05-17 02:54:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我写了一个简单的脚本来计算黄金分割率1,2,5。有没有一种方法可以通过实际图形结构的tensorflow(可能借助于matplotlibnetworkx)来实际生成视觉效果?tensorflow的doc与因子图非常相似,所以我想知道:

如何通过tensorflow生成图结构的图像?

在下面的这个例子中,它将C_1, C_2, C_3作为单个节点,然后C_1将有tf.sqrt操作,然后是将它们组合在一起的操作。也许图结构(节点、边)可以导入到networkx?我看到tensor对象有一个graph属性,但是我还没有发现如何将其实际用于成像目的。

#!/usr/bin/python

import tensorflow as tf
C_1 = tf.constant(5.0)
C_2 = tf.constant(1.0)
C_3 = tf.constant(2.0)

golden_ratio = (tf.sqrt(C_1) + C_2)/C_3

sess = tf.Session()
print sess.run(golden_ratio) #1.61803
sess.close()

Tags: 方法networkx脚本图形节点matplotlibtftensorflow
2条回答

您可以使用Tensorboard获得图形的图像。您需要编辑代码以输出图形,然后可以启动tensorboard并查看它。具体见TensorBoard: Graph Visualization。创建一个SummaryWriter,并在其中包含sess.graph_def。图形定义将输出到日志目录。

这正是tensorboard的初衷。您需要稍微修改代码以存储有关图形的信息。

import tensorflow as tf
C_1 = tf.constant(5.0)
C_2 = tf.constant(1.0)
C_3 = tf.constant(2.0)

golden_ratio = (tf.sqrt(C_1) + C_2)/C_3

with tf.Session() as sess:
    writer = tf.summary.FileWriter('logs', sess.graph)
    print sess.run(golden_ratio)
    writer.close()

这将在工作目录中创建一个包含事件文件的logs文件夹。之后,您应该从命令行tensorboard --logdir="logs"运行tensorboard,并导航到它提供给您的url(http://127.0.0.1:6006)。在浏览器中,转到“图形”选项卡并欣赏图形。

如果你想用TF做任何事,你会经常使用TB。所以从officialtutorials和这个video中了解它是有意义的。

相关问题 更多 >