如何创建 Tensorflow Tensorboard 空图
Posted
技术标签:
【中文标题】如何创建 Tensorflow Tensorboard 空图【英文标题】:How to create a Tensorflow Tensorboard Empty Graph 【发布时间】:2016-02-13 06:48:41 【问题描述】:使用tensorboard --logdir=/home/vagrant/notebook
启动张量板
在 tensorboard:6006 > 图表中,它说没有找到图表定义文件。
要存储图表,请创建一个 tf.python.training.summary_io.SummaryWriter 并通过构造函数或调用其 add_graph() 方法传递图表。
import tensorflow as tf
sess = tf.Session()
writer = tf.python.training.summary_io.SummaryWriter("/home/vagrant/notebook", sess.graph_def)
但是页面还是空的,如何开始玩tensorboard?
当前张量板
想要的结果
可以添加节点的空图,可编辑。
更新
似乎 tensorboard 无法创建图形来添加节点、拖动和编辑等(我对官方视频感到困惑)。
运行https://github.com/tensorflow/tensorflow/blob/master/tensorflow/g3doc/tutorials/mnist/fully_connected_feed.py 然后tensorboard --logdir=/home/vagrant/notebook/data
能够查看图表
然而 tensorflow 似乎只提供查看摘要的功能,并没有什么不同使其脱颖而出
【问题讨论】:
空是什么意思?不是启动了吗?空白(白/灰页)?你看不到图形吗?图表不是您所期望的? 公关视频确实具有误导性。我也是这么想的。 【参考方案1】:TensorBoard 是一个用于visualizing the TensorFlow graph 的工具,用于分析训练和推理期间记录的指标。该图是使用 Python API 创建的,然后使用 tf.train.SummaryWriter.add_graph()
方法写出。当您将 SummaryWriter 写入的文件加载到 TensorBoard 中时,您可以看到已保存的图形,并进行交互探索。
但是,TensorBoard 并不是构建图形本身的工具。它不支持向图中添加节点。
【讨论】:
【参考方案2】:从下面的Code Example开始,我可以加一行如下图:
import tensorflow as tf
import numpy as np
sess = tf.InteractiveSession() #define a session
# Create 100 phony x, y data points in NumPy, y = x * 0.1 + 0.3
x_data = np.random.rand(100).astype("float32")
y_data = x_data * 0.1 + 0.3
# Try to find values for W and b that compute y_data = W * x_data + b
# (We know that W should be 0.1 and b 0.3, but Tensorflow will
# figure that out for us.)
W = tf.Variable(tf.random_uniform([1], -1.0, 1.0))
b = tf.Variable(tf.zeros([1]))
y = W * x_data + b
# Minimize the mean squared errors.
loss = tf.reduce_mean(tf.square(y - y_data))
optimizer = tf.train.GradientDescentOptimizer(0.5)
train = optimizer.minimize(loss)
# Before starting, initialize the variables. We will 'run' this first.
init = tf.initialize_all_variables()
# Launch the graph.
sess = tf.Session()
sess.run(init)
#### ----> ADD THIS LINE <---- ####
writer = tf.train.SummaryWriter("/tmp/test", sess.graph)
# Fit the line.
for step in xrange(201):
sess.run(train)
if step % 20 == 0:
print(step, sess.run(W), sess.run(b))
# Learns best fit is W: [0.1], b: [0.3]
然后从命令行运行 tensorboard,指向相应的目录。这显示了对 SummaryWriter 的完整调用。重要的是要注意以下几点:
-
SummaryWriter 传递一个 Session,因此必须在创建 Session(或 InteractiveSession)之后发生
该 Session 可以在程序的早期创建,但是当 Session 被传递给 SummaryWriter 时,图 当时存在 被写入到 TensorBoard 将使用的文件中。
【讨论】:
tf.train.SummaryWriter 已变形为 tf.summary.FileWriter。如果您进行更改,则此示例有效。【参考方案3】:在这个页面中,有一个非常简单的代码可以用来测试你的安装:http://tensorflow.org/get_started
我加入了这一行
tf.train.write_graph(sess.graph_def, '/home/daniel/Documents/Projetos/Prorum/ProgramasEmPython/TestingTensorFlow/fileGraph', 'graph.pbtxt')
在这个“sess.run(init)”之后
这将生成一个您必须上传到“TensorBoard”的文件。
为了打开TensorBoard,假设它已经安装在你的电脑上(如果你用pip安装的话肯定是),我用Ubuntu的终端写了:
"张量板 --logdir nameOfDirectory"
然后,您应该在端口 6006 中打开浏览器:
http://localhost:6006/
这将打开 TensorBoard。我去了“图表菜单”并上传了文件。它生成了下图:
所以,我所做的就是将我在 Python 中创建的模型转移到 TensorBoard。我相信如果没有创建模型(仅启动会话),可以创建一个空的。但是,我不确定您是否可以直接在 TensorBoard 中进行更改。
在此问题之前,我已经用葡萄牙语回答了此问题,并为巴西用户提供了更多详细信息。也许对其他人有用:http://prorum.com/index.php/1843/recentemente-plataforma-aprendizagem-primeira-impressao
【讨论】:
这似乎不起作用。修改后的程序运行,输出文件已创建,但 Tensorboard 给出的错误与原始海报报告的相同 它对我有用!我花了几个小时才发现这一点!我使用的是 ubuntu 14.04,我在 Chromium 上试过了! 我听到你的发现过程。我使用了 Ubuntu 15.1、Chrome 和 Chromium,以及升级后的 Tensorflow 0.6。如果/当我让它工作时(可能几天),我会发表评论或发布单独的答案。 我发现一些与 tensorBoard 相关的进程是断断续续的(有时工作,有时不工作),但我不记得它究竟发生了什么情况。在您的情况下,可能正在发生类似的事情!在这些情况下,我尝试多次重复以使其按预期发生!【参考方案4】:我在 windows 上解决了:
file_writer = tf.summary.FileWriter("output", sess.graph)
对于那个目录“输出”。我在 Windows 上打开了命令。
输入
tensorboard --logdir="C:\Users\kiran\machine Learning\output"
我的错误就在那条线上..
【讨论】:
【参考方案5】:如果您使用的是 Firefox,则不会显示 TensorBoard 中的图表。您必须安装 Chrome。
【讨论】:
【参考方案6】:想要的结果
可以添加节点的空图,可编辑。
我想您会发现Orange 工具很有用。它允许您通过 GUI 拖放各种节点并实现算法。
【讨论】:
【参考方案7】:我不得不使用
python -m tensorflow.tensorboard --logdir="C:\tmp\tensorflow\.."
不知何故tensorboard --logdir
不起作用。
我的环境
操作系统:Windows 7、Python 3.5 和 Tensorflow 1.1.0
【讨论】:
以上是关于如何创建 Tensorflow Tensorboard 空图的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Tensorflow 创建预测标签和真实标签的混淆矩阵?
如何使用 Tensorflow 创建预测标签和真实标签的混淆矩阵?
如何创建可轻松转换为 TensorFlow Lite 的模型?