必须工具
- MobaXterm (或 XShell 等可以提供建立 ssh 隧道服务的终端软件)
- 服务器上的 tensorboard
- 本地的浏览器(最好是 tensorboard 兼容的 Chrome 或 Firefox)
Step1: 找到一个 tensorboard 可视化文件,在服务器端运行起 tensorboard
tensorboard 可视化文件名是events.out.tfevents.1274878.xxxxxxxxxx
这种一大长串的,一般在训练一个模型前都会指定好的,找到这个文件夹,我们假设它在 xx/xx/summary/
这个目录下,那么我们可以在summary
目录的上一层运行如下指令:
tensorboard --logdir=summary
注意这个运行结果,关键是它给出的一个地址http://localhost:6006
, 这个地址的意思就是 tensorboard 服务在 localhost 上运行,使用端口号 6006;
Step2:建立 ssh 隧道的本地端口转发
这一步本质上就是为了给我们PC的浏览器提供一个访问地址,通过这个地址我们就可以直接访问到服务器上运行 tensorboard 的地址,于是我们打开浏览器就可以看到 tensorboard 的内容了。这种地址上的关联是通过 ssh 本地端口转发实现的,它就是一个简单的信息转发方式,它能够将服务器端 localhost 上的内容不断地转发到 PC 端的浏览器上,从而实现可视化。
我们的目的是,在 PC 上的浏览器直接输入 http://localhost:<forwarded-port>
就可以看到 tensorboard 可视化的内容。那么怎么做呢?以 MobaXterm 为例,我们只要建立一个简单的端口到端口映射,就可以通过一条专门的地址去访问前面运行起来的 tensorboard 服务了。
首先,打开 MobaXterm,在上面的应用栏中找到 Tunneling
Remarks:
- ssh server 部分的信息需要查看自己使用 ssh session 服务的时候,所用的用户名,服务器ip和使用的端口号
- forwarded port 是我们在 PC 上需要访问的端口号,这个端口号可以随意填写一个空闲的,要保证它不被占用就好,有时候 tensorboard 显示不出来可能是你的这个端口号被占用了,建议选择 2025-65535 之间的一个号码,如果被占用就换一个
- remote server 和 remote port 就按照图片里的填,其中 remote server 可以理解成服务器使用 tensorboard 服务的 “ip地址”, remote port 则是在服务器上运行 tensorboard 的时候给出的端口号,回顾一下我们第一步运行 tensorboard 的界面,由于没有指定端口,默认使用的就是 6006
输入完毕点击 save
, 然后点击开始图标连接,连接成功后在 MobaXterm 上开始的图标会变成灰色
Step3:在浏览器上查看 tensorboard 可视化
按照步骤二的配置,我们在浏览器输入http://localhost:<forwarded-port>
(本例中就是 http://localhost:16006
)