使用 windows 连接远程服务器进行深度学习训练的时候,由于大部分服务器是只有命令行界面的,tensorboard 产生的可视化文件夹往往不能直接在服务器上显示。这时候如果直接可视化文件下载到本地再运行查看比较麻烦,而本地浏览器一般可以通过简单的方式访问到服务器端的 tensorboard 服务。本文将详细介绍如何利用建立 ssh 隧道的方法直接利用本地浏览器查看上述文件的可视化。
必须工具
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;
理论上,这时候我们打开浏览器,在地址栏输入 http::6006 就可以看到 tensorboard 的可视化了,其中, 就是服务器的ip地址。然而,现实中我们访问服务器都是需要建立 ssh 连接,验证用户名和密码这样子访问的,所以我们直接访问肯定是访问不到的。这时候,就需要第二步了:建立一个本地和服务器端地址的映射。
Step2:建立 ssh 隧道的本地端口转发
这一步本质上就是为了给我们PC的浏览器提供一个访问地址,通过这个地址我们就可以直接访问到服务器上运行 tensorboard 的地址,于是我们打开浏览器就可以看到 tensorboard 的内容了。这种地址上的关联是通过 ssh 本地端口转发实现的,它就是一个简单的信息转发方式,它能够将服务器端 localhost 上的内容不断地转发到 PC 端的浏览器上,从而实现可视化。
我们的目的是,在 PC 上的浏览器直接输入 http://localhost: 就可以看到 tensorboard 可视化的内容。那么怎么做呢?以 MobaXterm 为例,我们只要建立一个简单的端口到端口映射,就可以通过一条专门的地址去访问前面运行起来的 tensorboard 服务了。
首先,打开 MobaXterm,在上面的应用栏中找到 Tunneling

打开 Tunneling 后,新建一个 ssh tunnel

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:(本例中就是 http://localhost:16006)


**
TroubleShooting
**
1.ssh tunneling 连接不上:
可能是 PC 上想被映射的端口号 (Step2 中 forwarded-port 被占用,换一个号试试)
2. No dashboards are active for the current data set.

首先确保网络没有问题,ssh tunneling 建立成功;
如果还是显示这个,可能是代码方面出了一些问题,实验数据没有完整地被 SummaryWriter 对象记录保存,导致产生的可视化文件不可读,这时候有可能需要重新训练;(所以建议使用之前先用小批量数据试一下 SummaryWriter 能够成功记录和读取)
3. TensorFlow installation not found - running with reduced feature set.
如果是在 Pytorch 上使用 tensorboardX 应该会遇到这个。可以忽略,只要后面出现了serving Tensorboard on localhost 就没关系
Reference
https://zhuanlan.zhihu.com/p/662443399
https://zhuanlan.zhihu.com/p/450867370


被折叠的 条评论
为什么被折叠?



