【问题标题】:Why does this code not produce a log that is readable by tensorboard?为什么这段代码不产生张量板可读的日志?
【发布时间】:2019-11-24 13:01:47
【问题描述】:

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

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 - .. 还有更多...

【问题讨论】:

  • 没有标量是正常的,但是你有图表吗?
  • 否 - 我在图形窗口上也没有任何内容。我展示了这个页面的图像,因为它显示了日志的源文件——这是正确的(至少,这是日志出现的地方)。

标签: tensorboard


【解决方案1】:

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

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

编辑

1) 你确定 tensorboard 的路径正确吗?你可以去终端中的日志文件夹并从那里运行tensorboard --logdir ./吗?

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

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

底部的一个在浏览器中显示错误,其他 2 个工作正常。 ./ 应该可以用任何文件夹替换,我只是更喜欢在 Windows 终端进入我的文件夹,以防止任何路径中断

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

tensorboard==1.13.1
tensorflow==1.13.1

【讨论】:

  • 谢谢。如上所述 - 任何张量板页面上都没有任何内容 - 包括图形页面。我展示了这个页面,因为它指示了日志文件的位置(我相信的正确位置)。但是,所有其他 tensorboard 页面(包括“图表”)也显示没有任何内容。
  • 奇怪,我运行了你的确切代码,它运行良好。介意把tge日志分享给我,等我回家看看
  • T.Kelher - 谢谢,我在这里保存了 3 个不同的日志文件:drive.google.com/open?id=1Uld09iWGENguiekx9_W_DTWPhlxmXHIV
  • 真的很奇怪,我将所有 3 个文件放在同一个文件夹中,在那里启动了 tensorboard 并显示了图表,没问题。我很快就会编辑我的帖子,有一些事情要尝试/可能会出错
【解决方案2】:

上面的 T.Kelher 提供了使这项工作正常进行的关键信息。我添加此注释只是为了帮助其他人解决同样的问题:

  1. 我完全重新构建了运行 tensorFlow GPU 的 anaconda 环境.. 一些网页建议这可以解决我看到的问题。

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

  3. 来自 TensorBoard 的一条错误消息尤其具有误导性。以下消息似乎不仅在没有日志文件时发出......而且当 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 之前进入日志文件夹 (c) 使用命令:

    张量板 --logdir=./ --port=6006

(d) 不使用 URL:http://localhost:6006,而是使用 URL.. 与 tensorBoard 在启动时显示的完全相同 .... http://[my 机器名]:6006

【讨论】:

    猜你喜欢
    • 2016-07-23
    • 1970-01-01
    • 1970-01-01
    • 2016-02-08
    • 1970-01-01
    • 1970-01-01
    • 2017-08-02
    • 2021-12-10
    相关资源
    最近更新 更多