Deep Learning | Tensorboard 相关

远程访问Tensorboard

该问题与远程访问Ray Dashboard类似,但是问题是:在开启了tensorboard之后,无论是用–bind_all参数,还是用–host=0.0.0.0,始使无法在netstat -l | grep 6006中看到6006端口的监听信息。然而,lsof发现该端口确实占用中。

为什么会出现这种情况?有人说是lsof中出现但netstat中不出现的端口属于非TCP/IP协议,但我也不知道。总之,在这种情况下,虽然服务器安全组放行了6006端口,也可以在本地wget到,但是远程一直无法访问。

于是只能转换思路,参考这篇文章的方法,做一个端口映射,通过SSH将远程的6006端口映射到本地的6006端口上。由于AWS的EC2实例需要密钥,所以相对麻烦一些。打开Ubuntu,运行如下命令完成端口映射。其中,-i还是指定私钥,-L就是端口映射的关键,格式为portA:remoteHost:portB,其意义是使本地的端口A映射到远程服务器remoteHost的端口B,这里使用的“6006:localhost:6006”,就相当于远程的6006端口映射到本地的6006端口。最后面的长串是远程服务器地址和用户名。该命令运行后,直接挂起,没有输出,也没有返回,就让它这样连接着。会不会断掉?不清楚。

下面就简单了。在远程服务器上正常运行tensorboard,不用指定host和端口后,默认方式指定–logdir即可。

然后,在本地电脑上打开浏览器,输入:localhost:6006,即可访问远程tensorboard了。

发表回复