利用SSH进行内网端口转发tensorboard
在远程服务器训练时使用 TensorBoard 查看日志
在远程服务器上训练模型时,通常可以通过 SSH 端口转发 在本地浏览器查看远程服务器上的 TensorBoard 日
志。
先 SSH 登录到远程服务器:
1 | ssh username@server_ip |
然后启动 TensorBoard:
1 | tensorboard --logdir /path/to/logs --host 127.0.0.1 --port 6006 |
如果是 PyTorch 项目,只要日志是通过 SummaryWriter 写入的,也可以直接用 TensorBoard 查看。
3. 在本地电脑设置端口转发
在本地电脑新开一个终端,运行:
1 | ssh -L 6006:127.0.0.1:6006 username@server_ip |
如果服务器 SSH 端口不是默认的 22,例如是 2222,则使用:
1 | ssh -p 2222 -L 6006:127.0.0.1:6006 username@server_ip |
这条命令的含义是:
本地 localhost:6006 -> 远程服务器 127.0.0.1:6006
在本地浏览器打开 TensorBoard
在本地浏览器访问:
1 | http://localhost:6006 |
即可看到远程服务器上的 TensorBoard 页面。
5. 使用 tmux 保持 TensorBoard 后台运行
如果不希望 SSH 断开后 TensorBoard 停止,可以在远程服务器上使用 tmux。
创建一个新的 tmux 会话:
1 | tmux new -s tb |
在 tmux 中启动 TensorBoard:
1 | tensorboard --logdir /path/to/logs --host 127.0.0.1 --port 6006 |
然后按下面的快捷键退出 tmux,但保持 TensorBoard 继续运行:
Ctrl+b
d
之后如果想重新进入该会话:
1 | tmux attach -t tb |
6. 注意事项
不要轻易使用:
1 | tensorboard --host 0.0.0.0 |
因为这可能会把 TensorBoard 暴露到公网。
更推荐使用 SSH 端口转发:
1 | ssh -L 6006:127.0.0.1:6006 username@server_ip |
这种方式更安全,也不需要额外开放服务器端口。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Attic的博客!


