【Linux】远程使用Tmux+Tensorboard监测模型训练
前言
最近使用Lightning-AI/pytorch-lightning: Pretrain, finetune ANY AI model of ANY size on multiple GPUs, TPUs with zero code changes.框架来搭建了一些模型,这个框架集合了Tensorboard日志功能,很好用,具体用法可以参考官方日志文档。
Tensorboard的使用方法也很简单:
tensorboard --logdir=你的日志路径
运行后会自动开启一个默认为6006的端口,通过路径http://localhost:6006/即可访问:
然而问题是大部分服务器都是只允许少部分端口开放,我们无法通过远程主机IP+6006访问到Tensorboard,而手动下载日志文件到本机再运行太麻烦且达不到实时监控的效果,那么我们可以考虑使用端口映射的方式来实现。
一、后台运行
一般后台运行的最简单方式是:
nohup python xxxx
这种方式简单,输出会自动保存到运行路径下的nohup.out文件中
但是管理起来相当麻烦,且关闭进程需要去查进程号
因此我们选择使用tmux来进行,这里列出tmux的一些常用命令
tmux new -s 会话名 # 创建一个会话 tmux attach -t 会话名 # 打开指定会话 # 在当前会话下 exit() #关闭会话
这样我们只需要创建一个Tmux 会话,然后在会话中配置好Tensorboard就可以了,关闭也不会影响Tensorboard的运行。
二、端口映射
由于Tensorboard服务运行在服务器端,我们在用户端访问需要进行端口的映射,也很简单:
ssh -L 6006:127.0.0.1:6006 用户名@服务器IP
这样我们连接成功后即可在本机浏览器直接通过该网址访问Tensorboard
进一步地,我们可以将这条命令写成脚本,在桌面新建一个txt文档并输入以下内容:
@echo off start http://localhost:6006/ ssh -L 6006:127.0.0.1:6006 用户名@服务器IP
后缀名改成bat即可。