为什么此代码不生成张量板可读的日志?

时间:2019-07-15 19:47:30

标签: tensorboard

在Windows 10上使用Python(3.6)/ Jupyter(5.7.8)..我尝试了许多简单的示例来尝试为张量板生成日志文件,包括:

logs_base_dir = "C:/tensorlogs"
%load_ext tensorboard.notebook
# %tensorboard --port=6006 --logdir {logs_base_dir}

os.makedirs(logs_base_dir, exist_ok=True)
%tensorboard --port=6008 --logdir {logs_base_dir}

a = tf.constant([10])
b = tf.constant([20])
c = tf.add(a,b)

with tf.Session() as sess:
    # or creating the writer inside the session
    writer = tf.summary.FileWriter(logs_base_dir, sess.graph)
    print(sess.run(c))

writer.close()
sess.close()

我看到在'C:/ tensorlogs'文件夹中创建的日志文件名为:'events.out.tfevents.1563219145.DESKTOP-5HG12IB'

我还可以看到tensorboard在单独的浏览器窗口中运行。在“缩放器”页面上,它列出了正确的源文件夹“ C:/ tensorflow”。

但是tensorboard指示没有会话正在运行。

我在做什么错? 有什么方法可以检查该日志文件以查看其是否合法?

Browser window showing tensorboard running - but not finding log file

(在图形窗口上也不显示任何内容)

更新:我尝试使用以下命令从命令行运行tensorboard:

tensorboard --logdir ='c:/ tensorlogs'--port = 6006

它具有相同的行为..页面在浏览器中显示,无数据。终端显示以下消息:

TensorBoard 1.13.1,位于http://DESKTOP-5HG12IB:6006(按CTRL + C退出) I0716 06:56:05.074265 3780 _internal.py:122] :: 1--[16 / Jul / 2019 06:56:05]“ [37mGET / data / experiments HTTP / 1.1 [0m] 200- I0716 06:56:05.086722 8400 _internal.py:122] :: 1--[16 / Jul / 2019 06:56:05]“ [37mGET / data / environment HTTP / 1.1 [0m] 200- I0716 06:56:05.088708 3780 _internal.py:122] :: 1--[16 / Jul / 2019 06:56:05]“ [37mGET / data / plugins_listing HTTP / 1.1 [0m] 200- I0716 06:56:05.090195 8400 _internal.py:122] :: 1--[16 / Jul / 2019 06:56:05]“ [37mGET / data / runs HTTP / 1.1 [0m] 200- I0716 06:56:05.099200 3780 _internal.py:122] :: 1--[16 / Jul / 2019 06:56:05]“ [37mGET / data / plugin / scalars / tags HTTP / 1.1 [0m” 200- I0716 06:56:13.198990 3780 _internal.py:122] :: 1--[16 / Jul / 2019 06:56:13]“ [37mGET / HTTP / 1.1 [0m] 200- I0716 06:56:14.169489 3780 _internal.py:122] :: 1--[16 / Jul / 2019 06:56:14]“ [37mGET /tf-interactive-inference-dashboard/editedexample.png HTTP / 1.1 [0m ” 200- I0716 06:56:14.170989 8400 _internal.py:122] :: 1--[16 / Jul / 2019 06:56:14]“ [37mGET /tf-interactive-inference-dashboard/distance.png HTTP / 1.1 [0m ” 200- I0716 06:56:14.174491 3780 _internal.py:122] :: 1--[16 / Jul / 2019 06:56:14]“ [37mGET /tf-interactive-inference-dashboard/pdplots.png HTTP / 1.1 [0m ” 200- I0716 06:56:14.176498 12340 _internal.py:122] :: 1--[16 / Jul / 2019 06:56:14]“ [37mGET /tf-interactive-inference-dashboard/explorecounterfactuals.png HTTP / 1.1 [0m ” 200- I0716 06:56:14.281985 12876 _internal.py:122] :: 1--[16 / Jul / 2019 06:56:14]“ [37mGET / data / experiments HTTP / 1.1 [0m] 200- I0716 06:56:14.282483 8400 _internal.py:122] :: 1--[16 / Jul / 2019 06:56:14]“ [37mGET / data / runs HTTP / 1.1 [0m] 200- I0716 06:56:14.282483 12340 _internal.py:122] :: 1--[16 / Jul / 2019 06:56:14]“ [37mGET / data / environment HTTP / 1.1 [0m] 200- ..还有更多...

2 个答案:

答案 0 :(得分:0)

您可能没有关于张量板的基础知识,所以让我解释一下。 您创建了一个图形,并将其记录到文件中。您的日志文件唯一包含的是一个带有一个运算符(添加)和两个输入的图形。

在训练神经网络this seems like a decent guide时,通常会记录标量来跟踪您的损失函数。

编辑

1)您确定张量板正确获取路径吗?您可以转到终端中的日志文件夹并在其中运行tensorboard --logdir ./吗?

2)尝试使用“”,我尝试使用以下命令:

tensorboard --logdir ./
tensorboard --logdir="./"
tensorboard --logdir='./'

最下面的一个在浏览器中未显示任何内容时出错,其他两个则正常工作。 ./应该可以替换为任何文件夹,我只是更喜欢进入Windows终端中的文件夹,以防止任何路径中断

3)您是否玩过tensorflow安装,您的tensorboard是否可能与tensorflow完全不兼容?您是否尝试过卸载每个tensorboard / tensorflow软件包并重新安装它们?这些是我的版本:

tensorboard==1.13.1
tensorflow==1.13.1

答案 1 :(得分:0)

上面的

T.Kelher提供了关键信息以使此工作正常进行。我添加此说明只是为了帮助其他人解决同一问题:

  1. 我完全重建了运行tensorFlow GPU的anaconda环境。.多个网页建议这可以解决我所遇到的问题。

  2. 我的原始代码确实生成了正确的输出文件..我看到的错误是tensorBoard没有运行,或者它在错误的文件夹中寻找日志文件

  3. 来自TensorBoard的一条错误消息特别容易引起误解。似乎不仅在没有日志文件时发出以下消息..而且在张量板不在正确位置并且实际上找不到该位置时发出以下消息:

    在logdir'[您的命名日志文件夹]'中找不到事件文件

  4. tensorBoard在Windows上找不到您的文件夹的原因之一是语法过载。诸如“ C:/ logfolder”之类的内容可能不将“ C:”解释为驱动器号,而是解释为运行的标签。建议(https://github.com/tensorflow/tensorflow/issues/7856)可以使用“ training:c:/ logfolder”,但是我没有成功。

  5. 最后,按照t.Kelher的建议,我通过 (a)不是在Jupter内部而是在终端窗口中运行tensorBoard (b)在启动tensorBoard之前将CD放入日志文件夹 (c)使用命令:

    tensorboard --logdir =。/ --port = 6006

(d)而不是使用URL:http://localhost:6006,而是使用URL ..恰好在启动时由tensorBoard显示。http://[my计算机名称]:6006