远程服务器使用Tensorboard指南
如果在远端服务器上运行 TensorBoard 并且希望在本地机器上查看,可以使用 SSH 隧道将远程服务器的 TensorBoard 端口转发到本地机器。
使用 SSH 隧道
- 在远端服务器上启动 TensorBoard
tensorboard --logdir=./runs --host 0.0.0.0 --port 6006
注意,这一步需要进入到对应文件夹或者使用绝对路径
这样,TensorBoard 将会监听所有 IP 地址,并在端口 6006 上运行。
- 在本地机器上设置 SSH 隧道
假设远端服务器地址为 remote_server_address,用户名为 username,在本地机器的终端中运行以下命令:
ssh -L 6006:localhost:6006 username@remote_server_address
这将把远端服务器的 6006 端口映射到本地机器的 6006 端口。
- 在本地浏览器中查看 TensorBoard
在本地机器的浏览器中打开 http://localhost:6006,应该能够看到远端服务器上的 TensorBoard 界面。
端口 6006 被占用的解决
- 本地机器上的 6006 端口被占用
可以使用不同的本地端口。例如,将远程的 6006 端口映射到本地的 7007 端口:
ssh -L 7007:localhost:6006 user@123.45.67.89
- 服务器6006端口被占用——TensorBoard could not bind to port 6006, it was already in use
- 可以通过使用其他端口的方式解决
tensorboard --logdir=./runs --host 0.0.0.0 --port 7007
- 也可以找到占用6006端口的进程并将其停止
找出占用 6006 端口的进程
sudo lsof -i :6006
会看到类似如下的输出:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
python3 1234 user 13u IPv4 23456 0t0 TCP *:6006 (LISTEN)
这里,PID 列表示进程 ID。
kill -9 1234
杀死占用该端口的进程
参考来源:远程服务器使用Tensorboard指南