怎么在Linux中用tmux跑深度学习模型

为什么要用Tmux?

当我们SSH 登录远程服务器,打开一个远程窗口执行命令,网络中断再次登录的时候,是找不回上一次执行的命令的。因为上一次 SSH 会话已经终止了,里面的进程也随之消失了。最常见的就是使用vscode连接远程服务器跑的深度学习任务,自己的电脑中途断网了再次登录找不到上一次执行的命令。

为了解决这个问题,即将会话与窗口"解绑":窗口关闭时,会话并不终止,而是继续运行,等到以后需要的时候,再让会话"绑定"其他窗口。这时就需要用到Tmux这个会话与窗口的"解绑"工具,将它们彻底分离。

什么是Tmux?

Tmux是一个终端复用器,允许在单个终端窗口中创建多个会话,并在这些会话之间进行切换。它提供了一种在终端中同时运行多个命令和应用程序的灵活方式。

Tmux的一些主要功能包括:
终端分割:可以将终端窗口分割成多个窗格,每个窗格可以显示不同的命令行界面。
会话管理:可以创建和管理多个会话,每个会话可以包含多个窗口和窗格。这对于同时处理多个任务或在不同项目之间切换非常有用。
远程访问:Tmux支持远程访问,这意味着可以在不同的机器上创建和管理会话,而无需实际物理登录到这些机器。
窗口和窗格管理:可以在会话中创建、关闭、重命名和切换窗口,以及在窗格之间移动、调整大小和复制内容。
会话持久性:即使关闭了终端窗口,Tmux仍然会保持会话的状态,可以重新连接到之前的会话并继续您的工作。

Tmux提供了丰富的命令行选项和快捷键,用于管理和操作会话、窗口和窗格。它是一种强大而灵活的工具,特别适用于需要同时运行多个命令行任务的开发人员、系统管理员和远程工作者。

Tmux怎么用?

1.安装tmux:sudo apt install tmux

2.启动tmux会话:在终端中运行tmux命令启动一个新的tmux会话,底部有一个状态栏。状态栏的左侧是窗口信息(编号和名称),右侧是系统信息。
在这里插入图片描述
3.在tmux会话中运行深度学习命令,例如:python run.py with data_root="arrows_root/" num_gpus=1 num_nodes=1 task_finetune_irtr_coco_randaug per_gpu_batchsize =4 load_path="vilt_200k_mlm_itm.ckpt"

4.分离会话:按下Ctrl + b,然后按d或者直接输入tmux detach命令将当前会话与窗口分离。这样,深度学习任务将在后台继续运行。
上面命令执行后,就会退出当前 Tmux 窗口,但是会话和里面的进程仍然在后台运行。

5.重新连接到服务器,在终端中运行tmux attach来重新连接到之前的tmux会话;如果有多个会话,连接到特定会话:tmux attach-session -t <会话编号>;关闭特定会话:tmux kill-session -t <会话编号>,会话编号就是tmux ls显示的前面的0,1,2。

6.输入exit命令,退出当前的shell会话,并终止正在运行的进程。

tmux lstmux list-sessions命令可以查看当前所有的 Tmux 会话。
在这里插入图片描述

Tmux 窗口有大量的快捷键。所有快捷键都要通过前缀键唤起。默认的前缀键是Ctrl+b,即先按下Ctrl+b,快捷键才会生效,以上的命令基本满足日常使用,更详细的可以参考这里

猜你喜欢

转载自blog.csdn.net/zag666/article/details/131890873