【问题标题】:Tensorboard Error: No dashboards are active for current data setTensorboard 错误:当前数据集没有处于活动状态的仪表板
【发布时间】:2018-04-17 05:31:55
【问题描述】:

我正在尝试使用 Tensorboard,但每次使用 Tensorflow 运行任何程序时,当我转到 localhost:6006 以查看可视化时都会出现错误

这是我的代码

a = tf.add(1, 2,)
b = tf.multiply(a, 3)

with tf.Session() as sess:
    writer = tf.summary.FileWriter("output", sess.graph)
    print(sess.run(b))
    writer.close()

当我进入命令提示符并输入时

tensorboard --logdir=C:\path\to\output\folder

它返回

TensorBoard 0.1.8 at http://MYCOMP:6006 (Press CTRL+C to quit)

当我转到 localhost:6006 时,它指出

当前数据集没有处于活动状态的仪表板。 可能的原因: - 您尚未将任何数据写入您的事件文件。 - TensorBoard 找不到您的事件文件。

我已查看此链接 (Tensorboard: No dashboards are active for the current data set),但似乎无法解决此问题

我在 Windows 10 上运行它

我该怎么做才能解决这个问题?我是否在命令提示符下为 Tensorboard 提供了正确的路径?

提前谢谢你

【问题讨论】:

    标签: python-3.x tensorflow tensorboard


    【解决方案1】:

    您的问题可能与您尝试启动 tensorboard 的驱动器以及您的 logdir 所在的驱动器有关。 Tensorboard 使用冒号分隔可选的运行名称和 logdir 标志中的路径,因此您的路径被解释为名称为 C 的 \path\to\output\folder。

    这可以通过从与日志目录相同的驱动器启动 tensorboard 或通过提供明确的运行名称来解决,例如logdir=mylogs:C:\path\to\output\folder

    请参阅here 以了解该问题。

    【讨论】:

      【解决方案2】:

      如果是 Windows,我有一个解决方法。

      cd /path/to/log

      张量板 --logdir=./

      在这里您可以正常使用路径。 请记住,不要将空格作为 logdir = ./.

      这给了我一个错误:

      当前数据集没有处于活动状态的仪表板。可能的原因: - 您尚未将任何数据写入事件文件。 - TensorBoard 不能 找到您的活动文件。

      【讨论】:

        【解决方案3】:

        在 Windows 10 中,此命令有效

        tensorboard --logdir=training/
        

        这里的 training 是写入输出文件的目录。请注意,它没有任何引号,并且末尾有一个斜杠 (/)。两者都很重要。

        【讨论】:

          【解决方案4】:

          试试这个:

          tensorboard --logdir="C:\path\to\output\folder"
          

          【讨论】:

            【解决方案5】:

            嗯,你的代码有几个问题。

            1. 您正在创建一个摘要编写器 (tf.summary.FileWriter),但实际上您并没有用它编写任何内容。 print(sess.run(b)) 与 tensorboard 无关,如果您预计这会对它产生一些影响。它只打印b 的值
            2. 您不会创建和summary 对象来连接某些值。
            3. 您可能输入了错误的 tensorboard 文件夹。

            更多分析:

            1. 您需要summary object 来编写摘要。例如 tf.summary.scalar 将标量写入摘要。就像是 tf.summary.scalar("b_value", b)b 的值写入摘要。
            2. 那么您实际上需要将摘要操作运行到会话中才能使其正常工作,例如:summary = sess.run(summary_scalar)
            3. 使用您之前定义的编写器写入值:writer.add_summary(summary)
            4. 现在可以在 tensorboard 中看到一些东西,使用 tensorboard --logdir=output 在终端中
            5. 一般情况下,您可能需要将tf.summary.merge_all() 传递给run,以便将所有摘要收集在一起。

            希望这会有所帮助。

            【讨论】:

              【解决方案6】:

              tensorboard 目录中找到main.py 的路径并复制它。应该是这样的:

              C:/Users/<Your Username>/Anaconda3/envs/tensorflow/Lib/site-packages/tensorboard/main.py
              

              C:/Users/<Your Username>/anaconda/envs/tf/lib/python3.5/site-packages/tensorboard/main.py
              

              一旦你知道正确的路径,在 Anaconda Prompt 中使用 tensorboard 目录中 main.py 的路径运行此命令。这在 Windows 中对我有用。

              python C:/Users/Username/Anaconda3/envs/tensorflow/Lib/site-packages/tensorboard/main.py --logdir=foo:<path to your log directory>
              

              致谢:KyungHoon Kim

              【讨论】:

                【解决方案7】:

                尝试将目录放在引号内。

                例子:

                tensorboard --logdir="C:/Users/admin/Desktop/ML/log"
                

                【讨论】:

                • 有效!非常感谢
                【解决方案8】:

                如果有人仍然遇到这个问题,我建议尝试不同的端口,例如tensorboard --logdir=logs --port 5000。为我工作。

                【讨论】:

                  【解决方案9】:

                  当我运行 TensorFlow (https://www.tensorflow.org/programmers_guide/tensorboard_histograms) 教程时,我遇到了同样的问题。我继续尝试上面 hpabst 引用的解决方案。它像冠军一样工作。在终端(我在 CentOS 中运行)- 我运行:tensorboard --log =mydir: '~/mlDemo/'

                  【讨论】:

                    【解决方案10】:

                    我也在使用 Windows 10。我尝试了从同一驱动器、不同驱动器和本地路径运行 tensorboard 的代码。在所有三种情况下,我都能看到图表。

                    一个解决方案是,也许您需要更改您的主机(我也无法使用 localhost:6006 进行可视化)。试试http://MYCOMP:6006 看看你是否发现有什么不同。

                    注意:我的 tensorboard 版本是 1.8.0(也许你可以更新你的 tensorboard 看看它有什么不同)

                    【讨论】:

                      【解决方案11】:

                      观察到一旦 tensorflow 进入不良状态,它每次都会抛出问题,因为在随后的运行中,

                      1. 它不会自动终止以前的进程
                      2. 它在启动仪表板时使用以前的状态

                      缓解不良状态的步骤:

                      1. 杀死所有正在运行的张量板进程。
                      2. 清除之前的张量板状态。

                      在 jupyter 笔记本中

                      ! powershell "echo 'checking for existing tensorboard processes'"
                      ! powershell "ps | Where-Object {$_.ProcessName -eq 'tensorboard'}"
                      
                      ! powershell "ps | Where-Object {$_.ProcessName -eq 'tensorboard'}| %{kill $_}"
                      
                      ! powershell "echo 'cleaning tensorboard temp dir'"
                      ! powershell "rm $env:TEMP\.tensorboard-info\*"
                      
                      ! powershell "ps | Where-Object {$_.ProcessName -eq 'tensorboard'}"
                      
                      
                      %tensorboard --logdir="logs\fit" --host localhost
                      

                      如果在jupyter中超时,则在浏览器中去http://localhost:6006/#scalars查看

                      【讨论】:

                        【解决方案12】:

                        嗯,我在这里尝试了几乎所有解决方案,但没有任何解决方案。最后,几周后,我能够解决这个问题。这就是我所做的。

                        1. 杀死tensorboard的现有进程。 Use this code
                        2. 关闭所有 Jupiter 笔记本实例。
                        3. 从我的本地删除 Tensorboard 缓存文件 - C:\Users\sethuri\AppData\Local\Temp
                        4. 启动 Jupyter 笔记本实例并调用张量板
                        5. 我没有先看到视觉效果,但在重新加载页面后它起作用了

                        【讨论】:

                          猜你喜欢
                          • 2018-02-16
                          • 2020-06-24
                          • 2019-12-14
                          • 2018-06-01
                          • 2019-11-05
                          • 1970-01-01
                          • 2012-02-04
                          • 1970-01-01
                          • 1970-01-01
                          相关资源
                          最近更新 更多