场景
代码在服务器上运行,想使用tensorboard查看训练的过程。
但是服务器上不能直接访问地址,所以要转发端口到本地,从而在本地网页中能够打开tensorboard。
参考:https://zhuanlan.zhihu.com/p/680596384
这时我们需要建立本地服务器与远程服务器的通信,将tensorboard的映射端口与本地端口连接起来,如下所示:
ssh -L 本地端口:127.0.0.1:TensorBoard端口 用户名@服务器的IP地址 -p 服务器登录端口
本地端口:查看 tensorboard 结果时,在浏览器中输入地址时的端口号
TensorBoard端口:运行Tensorboard时指定的端口(默认为6006)
服务器登陆端口:登录服务器时指定的端口(默认为22)
#本地终端登陆远程服务器
ssh -L 10086:127.0.0.1:6060 work@221.122.128.92 -p 20
#远程服务器中找到tensorboard所在目录并运行
tensorboard --logdir=lightning_logs --port 6006
#在本地浏览器中输入如下地址即可查看tensorboard结果
http://127.0.0.1:10086
步骤:
具体实现:
1.cmd打开本地命令行
执行命令,并输入服务器上的密码:
ssh -L 20086:127.0.0.1:6060 root@***.***.***.*** -p9723
20086 是本地指定的端口,用于本地打开tensorboard。
http://localhost:20086/
此时相当于本地的127.0.0.1:6060 ,已经与服务器上的端口绑定了,后续要将tensorboard转发到6060端口上。
2.服务器上启动tensorboard
tensorboard --logdir=work_dir/CULane/20240526_231058_lr_5e-02_b_32/ --port 6060
这里要注意绑定端口6060,要和上面的步骤对应。
3. 本地打开tensorboard
本地浏览器打开:
http://localhost:20086
或者
http://127.0.0.1:20086
即可显示
其他知识
127.0.0.1 是一个特殊的 IP 地址,通常被称为“本地回环地址”(loopback address)。它用于指向本地主机,即当前计算机自身。无论在哪台计算机上使用 127.0.0.1,都始终指向该计算机自己,而不是网络中的其他设备。