远端服务器上Tensorboard的使用问题

场景

本机是windows系统,tensorflow程序运行在远端服务器,通常使用Xshell登陆服务器操作。

问题

按照tf教程,训练网络的summary存在设定的log_dir中,
检查tensorboard安装完好,找tf安装目录:
pip3 show tensorflow-gpu
tensorboard文件夹在tf同级目录,其下有可执行的/main.py
(若未安装可以 pip3 install tensorboard)
tensorboard --logdir=log_dir
(默认port是6006,若端口号被占用可以 tensorboard --logdir=log_dir --port=xx)

复制链接到浏览器,一直显示 “无法访问此网站,找不到IP地址”

原因

找了好久问题,网上有说–logdir目录层设置,有说–host改主机号试试,有说浏览器改输入http://localhost:6006,还有很多win下打不开网页问题;
终于醒悟这是因为链接访问的服务器本地端口,而我却在本机浏览器输入网址,当然找不到目标ip。
如此一来再搜,很容易就找到办法了。

解决

原理:建立ssh隧道,实现远程端口到本机端口的转发,远端被侦听端口为tensorboard默认的6006端口,本机端口任一非占用的都可。

在我的Xshell打开某个连接,属性->ssh->隧道->添加,类型local,源主机填127.0.0.1(意思是本机),端口设置一个,比如12345,目标主机为服务器本地,目标端口6006,如果被占了可改为其他端口。
远端服务器上Tensorboard的使用问题_第1张图片
这时再在服务器上输入命令,这里若–port改了端口号则上面设置也要改。
tensorboard --logdir=log_dir
复制链接,在本机打开网页 127.0.0.1:6006
成功访问远程的tensorboard,万事大吉。

参考

[1]使用localhost访问远程tensorboard
[2]Tensorboard 在服务器上的使用
博文2中还给出了linux和mac下用ssh登录服务器的场景解决方法,简直太赞,膜拜。

你可能感兴趣的:(TensorFlow,Keras)