admin管理员组

文章数量:1635968

楼主这两天因为系统重新激活了导致各种软件都用不了,其中包括 Tensorboard 可视化显示的问题,因此搜集了一系列资料,希望能够帮助到有需要的朋友。该资料将持续更新,也欢迎各位大神留言提供更多解决办法!

目录

    • 一、问题说明
      • 1. 网页显示 “无法访问此网站” 或显示空白
      • 2. 网页提示 No "XXX" Data was Found
      • 3. 提示 Use a Proxy or Pass --bind_all
      • 4. 提示 Module Not Found Error
    • 二、解决方法
      • 1. 检查网址
        • 1)检查主机名称是否包含中文
        • 2)更换主机名称为 localhost
        • 3)更换主机名称为 127.0.0.1
        • 4)更换服务端口
      • 2. 检查路径
        • 1)检查当前位置和文件位置是否正确
        • 2)检测日志文件是否存在
        • 3)检测文件是否存在有效数据
      • 3. 检查网络和浏览器
        • 1)更换网络或断网
        • 2)加入参数 --bind_all
        • 3)更换或更新浏览器
      • 4. 检查软件和系统配置
        • 1)缺少或未检测到库
        • 2)库版本过新或过旧

Tensorboard 是一款方便可视化各种曲线、图片、图表等的函数库(尤其在深度学习方面),具体使用说明可以前往官方主页进行查看。另外,Pytorch 也移植了该函数库,具体使用方法可参考其官方手册。


一、问题说明

这一部分主要展示 Tensorboard 出现的问题现象,可能同时出现多种问题,需要逐步排查。

1. 网页显示 “无法访问此网站” 或显示空白

  • 如下图所示,当使用 Tensorboard 命令并按照给出的链接输入网址后,网页显示 “无法访问此网站” 的提示信息,或可以加载出图标但页面显示空白。

Chrome 浏览器 “无法访问网站” 效果图

2. 网页提示 No “XXX” Data was Found

  • 如下图所示,网页能够正常加载出 Tensorboard 的页面(配色以橙白为主,且侧面有选项),但页面中央提示 “数据没找到” 的信息。

网页提示 “No Scalar Data was Found”

3. 提示 Use a Proxy or Pass --bind_all

  • 如下图所示,当命令行运行 Tensorboard 时,出现 Serving TensorBoard on localhost; to expose to the network, use a proxy or pass --bind_all 的提示信息。

运行 Tensorboard 命令提示网络问题

4. 提示 Module Not Found Error

  • 如下面代码块所示,当命令行运行 Tensorboard 时,出现 ModuleNotFoundError: No module named 'tensorflow.tensorboard' 的提示信息。
(tensorflow) USER_NAME@PC_NAME:~/tensorflow$ tensorboard --logdir=logs
Traceback (most recent call last):
  File "/home/USER_NAME/anaconda3/envs/tensorflow/bin/tensorboard", line 4, in <module>
    import tensorflow.tensorboard.tensorboard
ModuleNotFoundError: No module named 'tensorflow.tensorboard'
运行 Tensorboard 命令提示模块问题


二、解决方法

这一部分主要列举了各种解决办法,下述方法与上述问题并不呈现一一对应关系,尽可能都尝试进行排除。另外,类似电脑重启、Anaconda 重装或更新、系统文件修复或更新等常规解决办法就不在这赘述了。还有,在运行 Tensorboard 命令时请勿关闭命令行或按 Ctrl-C 退出。


1. 检查网址

该方法主要通过检查并更改 Tensorboard 提供的网址来解决,请按照下述步骤进行一一排查。

1)检查主机名称是否包含中文
  • 原因:由于 Tensorboard 一般默认取主机名称加端口号作为网址链接,因此当名称包括中文时会识别错误导致无法访问。
  • 方法:以 Windows 为例,可以从 计算机属性 中的 高级系统设置 查看计算机全称并进行重命名。
2)更换主机名称为 localhost
  • 方法:当无法更改主机名称或改后仍没有效果时,可将网址中含有主机名称的部分改为 localhost后边接的端口号不变),该表示可代替主机名。
  • 示例:直接在浏览器的网址输入栏中,将原本为 http://COMPUTER-NAME:6006/ 的网址转为 http://localhost:6006/
3)更换主机名称为 127.0.0.1
  • 方法:当上述两个方法都没有效果时,可以采用同等替代的 IPV4 地址 127.0.0.1 来表示主机名称,可以用来调用主机服务。
  • 示例:该方法需要在调用命令行时额外添加 --host=127.0.0.1 的参数,即可得到网址 http://127.0.0.1:6006/
4)更换服务端口
  • 原因:由于 Tensorboard 默认选择端口 6006 调用服务,但当端口发生冲突或无法被调用时,网址无法正常访问。
  • 方法:可在使用时手动设置其他端口来解决,在调用命令行时额外添加 --port=PORTS-NUMBER 的参数。
  • 示例:注意端口数取值范围在 0-65535 ,如设置为 8080 ,即可得到网址 http://localhost:8080/

2. 检查路径

该方法主要通过检查并更改 Tensorboard 日志文件及其路径来解决,请按照下述步骤进行一一排查。

1)检查当前位置和文件位置是否正确
  • 原因:命令行是从当前位置出发,搜索其参数 --logdir 的文件所在位置。若出现前者调用权限不足,或后者输入错误,或后者用了相对路径而前者目录错误等问题,则会导致命令无法正确执行。
  • 方法:尽可能在日志文件夹或上一级目录中打开命令行, --logdir 参数可以是文件名称(注意拼写不要出错)、或相对路径(如 ./ 表示当前目录下的所有文件)、或绝对路径(即从根目录开始到日志文件所在的文件夹的全部路径)。
  • 示例:以 Linux 为例,如用 --logdir=LOGS_DIRECTORY,或 --logdir="./LOGS_DIRECTORY",或 --logdir="/home/USER_NAME/LOGS_DIRECTORY"
  • 注意:路径和文件名不可包含中文字;若路径无误但仍不能显示,或许是路径书写问题。
2)检测日志文件是否存在
  • 方法:当路径内文件过多,不确定是否包含日志文件,则可以通过系统命令行查找的方法检测日志文件的位置和名称。
  • 示例:以 Linux 为例,采用 find DIRECTORY_PATH | grep tfevents 来检测日志存在情况。
3)检测文件是否存在有效数据
  • 方法:当找到日志文件存放的路径后,需要进一步检查其文件是否包含有效数据,若没有则会显示 No "XXX" Data was Found
  • 示例:以 Linux 为例,采用 tensorboard --inspect --logdir DIRECTORY_PATH 查看日志文件夹下或具体文件是否有内容。另一种不一定准确但简单的方式——可根据日志文件大小进行判断(根据个人经验,日志文件若大约在 40 Bytes 则表明不存在有效数据)。

3. 检查网络和浏览器

该方法主要通过检查网络情况以及更改浏览器来解决,请按照下述步骤进行一一排查。

1)更换网络或断网
  • 方法:更换网络或代理(对于远程服务器),或断网操作(本地执行)。
2)加入参数 --bind_all
  • 方法:当无法查找网址时,命令行会提示采用代理或加入该方法用来探索网络。
  • 示例:该方法需要在调用命令行时额外添加 --bind_all 的参数。
3)更换或更新浏览器
  • 原因:浏览器类型或版本不支持,导致无法正常显示。
  • 方法:优先采用 Google Chrome 浏览器(因为 TensorboardGoogle 团队研发的),注意版本较低可能也无法显示;还可以尝试更换 IEEdgeFireFox 等(注意 Ubuntu 自带浏览器可能无法显示)。

4. 检查软件和系统配置

该方法主要通过检查库版本和系统环境配置来解决,请按照下述步骤进行一一排查。

1)缺少或未检测到库
  • 方法:检查是否真的缺少相关报错库,若是则安装相应的库,若不是则需要添加环境变量。
  • 示例:以 Linux 为例,首先查找并更新库;若有相关文件则需要设置环境变量,Windows 可以参考将 tensorboard.exe 所在路径加入环境变量的具体操作流程。
2)库版本过新或过旧
  • 原因:当 Tensorboard 版本过新或过旧时,会导致其中依赖的其他库与其发生冲突。
  • 方法:卸载当前版本并根据情况安装合适的版本,如对 Tensorboard 版本降级,或找到匹配 Tensorflow 的相应 Tensorboard 版本以及命令格式。

本文标签: 报错解决办法命令行打开网页数据