用pytorch中的tensorboardx来远程查看docker中的日志以及pytorch中的tensorboardx的安装
如何用pytorch中的tensorboardx来远程查看docker中的日志注:远程指的是训练在docker容器中进行训练并产生日志文件,但是docker容器中并不能可视化日志文件,那么就需要在windows上可视化日志文件或者在宿主上进行可视化日志文件。有两种思路:生成docker容器的时候,就建立好docker容器和宿主机间的映射关系为宿主机建一个虚拟环境,在这个虚拟环境中安装tensobo
文章目录
如何用pytorch中的tensorboardx来远程查看docker中的日志
注:远程指的是训练在docker容器中进行训练并产生日志文件,但是docker容器中并不能可视化日志文件,那么就需要在windows上可视化日志文件或者在宿主上进行可视化日志文件。
有两种思路:
- 生成docker容器的时候,就建立好docker容器和宿主机间的映射关系
- 为宿主机建一个虚拟环境,在这个虚拟环境中安装tensoboardx和tensorboard等工具,在这个环境中运行docker容器训练产生的日志文件。
1 .docker容器中用 tensorboard 运行日志文件
-
搭建docker 容器
nvidia-docker run -it -p 10022:22 -p 5009:80 -p 9006:6006 -p 9007:6007 -p 9008:6008 -v ~/wm_workspace:/root/workspace --name "cu9.2pytorch1.3.1" --shm-size 15710886400 py1.3_and1.7_latest:latest
参数说明
--name:创建的容器名,即 cu9.2pytorch1.3.1 -p10022:22:端口映射,前者是宿主机的端口,后者是docker中的端口 -p 9006:6006: tensorboard 端口映射 -p 9007:6007: 预留端口 -p 9008:6008: 预留端口 -v ~/wm_workspace:/root/workspace 将宿主机的 ~/wm_workspace 挂载到容器内的 /root/workspace下 tpy1.3_and1.7_latest:latest:是镜像
docker内的6006端口映射到docker外的宿主机的端口是9006,所以在宿主机的 浏览器中打开tensorbroad时,端口应该是9006 。
-
启动tensorboard服务
1.进入docker容器内 2.cd到与日志目录在同一级下 3.执行指令: tensorbroad --logdir ‘logs_path’ --port 6006 注:其中logs_path为模型log的保存路径,--port指定用容器的哪个端口,默认是6006
-
用宿主机的浏览器查看可视化过程
127.0.0.1:9006
docker内的6006端口映射到docker外的宿主机的端口是9006,所以在宿主机的 浏览器中打开tensorbroad时,端口应该是9006 。
2.在宿主机中用tensorboard运行日志文件
在宿主机上安装Anaconda,然后建一个虚拟环境。用这个环境中的tensorboard运行docke容器训练产生的日志文件
启动tensorboard服务
1.在宿主机上找到日志文件的位置
2.cd到与日志目录在同一级下
3.执行指令:
tensorbroad --logdir ‘logs_path’ --port 6006
注:其中logs_path为模型log的保存路径,--port指定用容器的哪个端口,默认是6006
3.为远程服务器和本地机器建立隧道(端口转发响应)
前面的一些设置只能在宿主机的浏览器中可视化tensorboardx训练产生的日志文件
但是通常宿主机,即远程服务器不易于本地操作,那么就需要将服务器的tensorboard运行的端口,转发到本地的机器上,一般本地的机器为windows、Mac、或者Linux
那么就需要给远程服务器和本地的机器建立端口的隧道映射:
-
本地机器为windows
方法1: 在Windows系统装一个Xshell,在文件->属性->ssh->隧道->添加,类型local,源主机填127.0.0.1(意思是本机),端口设置一个,比如16006,目标主机为服务器ip,目标端口一般是6006,如果6006被占了可以改为其他端口。 方法2: 打开cmd命令窗口: ssh -L 16006:127.0.0.1:6006 image2@10.132.213.10 #该命令同时会登录到远程服务器上 注:方法2的缺点是不可关闭这个cmd命令程序窗口,关闭了,则这种隧道端口建立就会消失
在本机打开网页
127.0.0.1:16006
即可查看远程的 tensorboard。 -
本地机器为Mac或 linux
ssh -L 16006:127.0.0.1:6006 image2@10.132.213.10
4. tensorboardx的安装
先激活已有的pytorch虚拟环境
1.先安装对对应的GPU或CPU版本的tensorflow #pip install tensorflow==2.0.0
2.然后安装tensorboardx #pip install tensorboard
注:如果直接安装tensorboardx会报如下的错误
TensorFlow installation not found - running with reduced feature set.
NOTE: Using experimental fast data loading logic. To disable, pass
"--load_fast=false" and report issues on GitHub. More details:
https://github.com/tensorflow/tensorboard/issues/4784
Serving TensorBoard on localhost; to expose to the network, use a proxy or pass --bind_all
TensorBoard 2.6.0a20210509 at http://localhost:6006/ (Press CTRL+C to quit)
更多推荐
所有评论(0)