在使用tensorflow时,由于本地资源的限制,一般在远程服务器上训练模型,而服务器没有图形界面,那么在训练过程中如何实时地访问tensorboard可视化数据呢?
如果服务器和本地电脑连接在同一个局域网内,只需要浏览器中输入(即可访问服务器Tensorboard):
服务器ip:端口
如果不在一个局域网,这里介绍在Xshell中的方法。
在连接服务器的会话属性中建立隧道(菜单路径:属性-隧道-TCP/IP转移-添加),设置如下转移规则:
几个参数的含义为:
- 类型(方向):选择local,表示从远程主机发送到本地主机
- 源主机:本地主机,填写localhost
- 侦听端口:16006(也可以自己选择一个空闲的端口),表示把目标主机的目标端口转发到本地的侦听端口16006
- 目标主机:服务器,填写服务器的ip地址
- 目标端口:6006(我们需要转发的服务器端口,tensorboard默认把数据放在6006端口)
在实时训练时如果想查看tensorboard,可以新开一个会话(设置好隧道),在命令行运行
tensorboard --logdir="/path/to/log-directory"
然后在本地浏览器访问 http://127.0.0.1:16006/ 即可看到tensorboard的可视化页面。