我是Tensorflow的新手,希望能通过一些可视化方式更好地理解我正在做的事情。我知道Tensorboard是一个有用的可视化工具,但我该如何在我的远程Ubuntu机器上运行它呢?
我是Tensorflow的新手,希望能通过一些可视化方式更好地理解我正在做的事情。我知道Tensorboard是一个有用的可视化工具,但我该如何在我的远程Ubuntu机器上运行它呢?
以下是我避免让远程服务器接受本地外部IP问题的方法:
-L
选项将远程服务器的端口6006
转移到我的机器上的端口16006
(例如):
ssh -L 16006:127.0.0.1:6006 olivier@my_server_ip
它的作用是将服务器上端口6006
(在127.0.0.1:6006
中)的所有内容转发到我的机器上的端口16006
。
tensorboard --logdir log
命令启动tensorboard,并使用默认的6006
端口。127.0.0.1
是指你的本地机器IP地址,所以你应该将其保留不变,不要改成你的远程IP地址。我因为这个浪费了10分钟时间。我真是太蠢了! - DarkZero-4
ssh标志来强制使用IPv4解决了这个问题。阅读类似的问题,许多人在他们的服务器上遇到了IPv6地址的问题。 - Robert Parcusssh
命令进行端口转发(作为其他答案的替代方法)。因此,下面步骤的顺序是任意的。
ssh -N -f -L localhost:16006:localhost:6006 <user@remote>
tensorboard --logdir <path> --port 6006
-N
:不执行远程命令
-f
:将SSH放在后台运行
-L <machine1>:<portA>:<machine2>:<portB>
:<machine1>:<portA>
(本地范围)转发到<machine2>:<portB>
(远程范围))你不需要做任何花哨的事情,只需运行:
tensorboard --host 0.0.0.0 <other args here>
并连接到您的服务器URL和端口。 --host 0.0.0.0
告诉tensorflow在本地机器上监听所有IPv4地址的连接。
如果由于某些原因无法使其正常工作,另一个选项是使用sshfs在文件系统上挂载logdir目录:
sshfs user@host:/home/user/project/summary_logs ~/summary_logs
然后在本地运行Tensorboard。
--bind_all
选项很有用。
$ tensorboard --logdir runs --bind_all
端口将会自动从6006开始递增选择。(6006、6007、6008...)
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
"whats my ip"
或者输入以下命令来查找您的本地外部IP地址:wget http://ipinfo.io/ip -qO -
wget http://ipinfo.io/ip -qO -
。6006
123.123.12.32:6006
如果您的远程服务器对来自本地IP地址的流量开放,您应该能够看到您的远程Tensorboard。
警告:如果所有互联网流量都可以访问您的系统(如果您没有指定单个IP地址可以访问它),任何人都可能查看您的TensorBoard结果并创建SkyNet。
您需要使用端口转发创建SSH连接:
ssh -L 16006:127.0.0.1:6006 user@host
然后您运行 tensorboard
命令:
tensorboard --logdir=/path/to/logs
然后您可以在浏览器中轻松访问tensorboard
,网址为:
localhost:16006/
tensorboard --logdir=. --host=localhost --port=6006
2. 在客户端上打开ssh隧道ssh -p 23 <USER>@<SERVER> -N -f -L localhost:16006:localhost:6006
3. 打开Ubuntu的浏览器
并访问localhost:16006
。 Tensorboard页面应该很快加载。
为了检查 SSH 隧道是否有效工作,可以使用类似于 this python script 的简单回显服务器:
<ECHO>.py
文件中,并使用python <ECHO>.py
运行它。现在,服务器将在0.0.0.0:5555上监听回显脚本。ssh -p <SSH_PORT> <USER>@<SERVER> -N -f -L localhost:12345:localhost:5555
telnet localhost 12345
将连接到在服务器上运行的回显脚本。键入hello
并按Enter应该会打印hello
。如果是这种情况,则您的SSH隧道正在工作。这就是我的情况,并导致我得出结论,问题涉及浏览器。尝试从不同的终端连接会导致终端冻结。正如我所说,希望能帮到你!
干杯,
安德烈斯
https://github.com/dmlc/tensorboard
只是为了增加更多设置的选择。干杯 - fr_andresngrok http 6006
(假设您正在端口6006上托管Tensorboard)。4) 将此输入到任何浏览器中以查看TensorBoard:
特别感谢Sam Kirkiles