通过端口映射在本地访问服务器(docker容器)上的tensorboard可视化结果

很多时候我们使用的训练资源是学校或公司的服务器,这些服务器往往没有给使用者提供图形界面,我们通过ssh访问,此时要想使用tensorboard来可视化我们的训练过程就比较麻烦了。

tensorboard默认使用是通过一个端口来访问可视化结果,所以可以通过端口映射来解决这个问题。

1、服务器到本地的端口映射

ssh -L 6006:127.0.0.1:6666 username@serverIP

使用ssh连接到服务器,并做端口转发,其中本地IP是省略了的,6006是本地端口;127.0.0.1:6666指的是服务器的本地端口6666
上述操作将服务器的6666端口映射到本地机器的6006端口

如果是直接在服务器上使用tensorboard的话,可以将6666改为6006(tensorboard默认端口为6006),这样就可以通过本地6006端口访问可视化结果了。

然而,很多企业为了保证服务器环境干净,一般会使用docker,这样一来仅仅是上述端口转发便不够用了。

2、容器到服务器的端口映射

sudo nvidia-docker run -p 6666:6006 --name test  -it 镜像id

在服务器上启动容器,使用-p指令进行端口映射,将容器的6006端口映射到服务器的6666端口。

以上便实现了 容器:6006——>服务器:6666——>本地:6006 的端口映射
此时,在容器内使用tensorboard(其默认端口一般为6006),便可以在本地通过本地6006端口访问tensorboard的可视化结果。
注意,在使用上述方法是,端口号可自己设定,但是要确保使用的端口没有被其他程序占用,最好使用一些不常用的端口。

你可能感兴趣的:(tensorboard,docker)