如何在远程服务器上运行Tensorboard?
machine-learning
tensorboard
tensorflow
7
0

我是Tensorflow的新手,可以从我所做的一些可视化中受益匪浅。我了解Tensorboard是有用的可视化工具,但是如何在远程Ubuntu计算机上运行它?

参考资料:
Stack Overflow
收藏
评论
共 8 个回答
高赞 时间 活跃

如果由于某种原因而无法使它正常工作的另一种选择是简单地使用sshfs在文件系统上挂载logdir目录:

sshfs user@host:/home/user/project/summary_logs ~/summary_logs

然后在本地运行Tensorboard。

收藏
评论

您必须使用端口转发创建ssh连接:

ssh -L 16006:127.0.0.1:6006 user@host

然后运行tensorboard命令:

tensorboard --logdir=/path/to/logs

然后,您可以在浏览器中的以下位置轻松访问tensorboard量板:

localhost:16006/
收藏
评论

您可以在远程服务器的终端上直接运行以下命令来运行tensorboard:

tensorboard --logdir {tf_log directory path} --host "0.0.0.0" --port 6006

或者您也可以在ipython笔记本中启动tensorboard:

%load_ext tensorboard
%tensorboard --logdir {tf_log directory path} --host "0.0.0.0" --port 6006
收藏
评论

您不需要做任何花哨的事情。赶紧跑:

tensorboard --host 0.0.0.0 <other args here>

并连接服务器的网址和端口。 --host 0.0.0.0告诉tensorflow侦听本地计算机上所有IPv4地址上的连接。

收藏
评论

这不是一个正确的答案,而是一个疑难解答,希望可以帮助其他像我这样经验不足的人。

在我的情况下(firefox + ubuntu16),浏览器正在连接,但是显示空白页(选项卡上带有tensorboard徽标),并且根本没有显示任何日志活动。我仍然不知道这可能是什么原因(没有深入研究,但是如果有人知道,请告诉我们!),但是我解决了切换到ubuntu默认浏览器的问题。这里的确切步骤与@Olivier Moindrot的答案几乎相同:

  1. 在服务器上,启动tensorboard: tensorboard --logdir=. --host=localhost --port=6006
  2. 在客户端上,打开ssh隧道ssh -p 23 <USER>@<SERVER> -N -f -L localhost:16006:localhost:6006
  3. 打开ubuntu的Browser并访问localhost:16006 。 tensorboard页面应立即加载。

为了检查SSH隧道是否有效,一个简单的回显服务器(例如python脚本)可以帮助您:

  1. 将脚本放入服务器中的<ECHO>.py文件中,并使用python <ECHO>.py运行它。现在,服务器将在0.0.0.0:5555上监听echo脚本。
  2. 在客户端上,打开ssh隧道ssh -p <SSH_PORT> <USER>@<SERVER> -N -f -L localhost:12345:localhost:5555
  3. 在客户端上,用于打开隧道的同一终端(步骤2)中,发出telnet localhost 12345将连接到服务器中运行的echo脚本。键入hello然后按Enter键将回打印hello 。在这种情况下,您的SSH隧道正在运行。这就是我的情况,使我得出结论,该问题涉及浏览器。尝试从其他终端连接导致终端冻结。

如我所说,希望能有所帮助!
干杯,
安德烈斯

收藏
评论

您可以使用另一个ssh命令进行端口转发,而该命令不必与您如何连接到服务器有关(作为其他答案的替代方法)。因此,以下步骤的顺序是任意的。

  1. 本地计算机运行

    ssh -N -f -L localhost:16006:localhost:6006 <user@remote>

  2. 远程计算机上,运行:

    tensorboard --logdir <path> --port 6006

  3. 然后,导航至(在本示例中)本地计算机上的http:// localhost:16006

(ssh命令的解释:

-N :没有远程命令

-f :将ssh放在后台

-L <machine1>:<portA>:<machine2>:<portB>

<machine2>:<portB> (远程作用域)转发到<machine1>:<portA> (本地作用域)

收藏
评论
  1. 通过搜索"whats my ip"或输入以下命令来查找本地外部IP: wget http://ipinfo.io/ip -qO -
  2. 确定您的远程外部IP。 SSH到远程服务器时,可能是用户名后面的内容。您也可以从那里再次获取wget http://ipinfo.io/ip -qO -
  3. 保护远程服务器流量,使其仅接受本地外部IP地址
  4. 运行Tensorboard。请注意默认端口为: 6006
  5. 在浏览器中输入远程外部IP地址,然后输入端口: 123.123.12.32:6006 : 123.123.12.32:6006

如果您的远程服务器已开放使用本地IP地址的流量,则应该可以看到远程Tensorboard。

警告 :如果所有互联网流量都可以访问您的系统(如果您尚未指定可以访问它的单个IP地址),则任何人都可以查看TensorBoard结果并自行创建SkyNet。

收藏
评论

为了避免使远程服务器接受本地外部IP的问题,我将采取以下措施:

  • 当我SSH进入计算机时,我使用选项-L将远程服务器的端口6006转移到我的计算机的端口16006中(例如): ssh -L 16006:127.0.0.1:6006 olivier@my_server_ip

它所做的是,服务器端口6006 (在127.0.0.1:6006 )上的所有内容都将在端口16006转发到我的机器。


  • 然后,您可以使用默认的6006端口使用标准tensorboard --logdir log在远程机器上启动tensorboard
  • 在本地计算机上,转到http://127.0.0.1:16006并使用您的远程TensorBoard。
收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题

关于我们

常见问题

内容许可

联系我们

@2020 AskGo
京ICP备20001863号