在使用 AutoDL、Linux 服务器或者远程 GPU 训练模型时,很多新手都会遇到一个问题:

关闭网页、断开 SSH、VSCode 掉线之后,训练直接中断。

这时候,tmux 就是最实用的工具之一。

它可以让训练任务在后台持续运行,即使你退出终端、关闭浏览器,模型依然会继续训练。

这篇文章会带你从 0 开始掌握 tmux 的核心使用方法。


一、什么是 tmux?

tmux 是 Linux 下的一个终端会话管理工具。

简单理解:

  • 普通终端关闭 → 程序停止
  • tmux 会话关闭 → 程序继续运行

因此,它特别适合:

  • 深度学习训练
  • AutoDL 云服务器
  • SSH 远程开发
  • 长时间运行任务

二、安装 tmux

如果你的服务器提示:

tmux: command not found

说明系统还没安装 tmux。

先执行:

apt update
apt install -y tmux

安装完成后检查版本:

tmux -V

如果输出类似:

tmux 3.2a

说明安装成功。


三、创建 tmux 会话

进入你的项目目录:

cd ~/autodl-tmp/Pytorch-UNet-master

创建一个名为 train 的 tmux 会话:

tmux new -s train

进入之后,你会发现终端底部多出一条状态栏。

这说明你已经进入 tmux 环境。


四、在 tmux 中启动训练

普通训练命令:

python train.py \
    --epochs 120 \
    --batch-size 16 \
    --lr 1e-4 \
    --num-workers 8 \
    --no-wandb

如果你要训练增强版 SwinIR-Denoise-UNet:

python train.py \
    --epochs 120 \
    --batch-size 12 \
    --lr 1e-4 \
    --num-workers 8 \
    --swinir-depths 0,0,1,1,2 \
    --no-wandb

这里建议新手先关闭 wandb

--no-wandb

否则可能会出现:

  • 登录问题
  • 网络连接问题
  • 训练卡住
  • wandb 初始化失败

后续熟悉流程后再开启即可。


五、退出 tmux,但不中断训练(重点)

这是 tmux 最核心的功能。

按下:

Ctrl + B

松开后,再按:

D

你会看到类似:

[detached from train]

这表示:

  • 你已经退出 tmux
  • 但训练仍在后台运行

此时即使:

  • 关闭网页
  • 断开 SSH
  • VSCode 掉线

训练也不会停止。


六、重新连接训练会话

查看当前所有 tmux 会话:

tmux ls

例如:

train: 1 windows

重新进入训练窗口:

tmux attach -t train

简写:

tmux a -t train

进入后,你会重新看到训练日志。


七、结束 tmux 会话

很多新手第一次用 tmux 时都会发现:

我已经退出终端了,但训练还在跑,该怎么停掉?

这里分几种情况。


方法 1:在 tmux 内直接停止(推荐)

重新进入训练窗口:

tmux attach -t train

然后按:

Ctrl + C

这会中断当前正在运行的训练程序。

你会看到类似

KeyboardInterrupt

说明训练已经停止。

这是最标准、最安全的停止方式。


方法 2:直接关闭 tmux 会话

如果你不想重新进入训练窗口,也可以直接杀掉整个 tmux 会话:

tmux kill-session -t train

这会:

  • 结束 tmux
  • 停止里面所有程序
  • 包括训练任务

适合:

  • 训练卡死
  • 不想保留当前会话
  • 后台程序太多

方法 3:强制结束 Python 训练进程(进阶)

先查看 Python 进程:

ps -ef | grep train.py

例如:

root      12345  1  99  python train.py

其中:

12345

就是进程 PID。

强制结束:

kill -9 12345

这样可以直接杀掉训练进程。

适用于:

  • tmux 卡死
  • 无法 attach
  • GPU 被异常占用
  • 程序失控

查看 GPU 是否还在运行

停止训练后,可以检查 GPU:

nvidia-smi

如果训练已经结束:

  • GPU 占用会下降
  • Python 进程会消失

推荐的新手停止流程

最推荐的方法:

tmux attach -t train

然后:

Ctrl + C

最后:

exit

这是最规范的结束方式。

训练完成后,可以直接在 tmux 中输入:

exit

或者在外部终端强制关闭:

tmux kill-session -t train

八、tmux 常用命令速查

会话管理

tmux new -s train          # 创建 train 会话
tmux ls                    # 查看所有会话
tmux attach -t train       # 进入 train 会话
tmux a -t train            # attach 简写
tmux kill-session -t train # 删除会话

tmux 内部快捷键

先按:

Ctrl + B

再按对应按键。

后台运行(最重要)

Ctrl + B,然后 D

退出但不中断程序。


新建窗口

Ctrl + B,然后 C

切换窗口

Ctrl + B,然后 N

下一个窗口。

Ctrl + B,然后 P

上一个窗口。


分屏操作

左右分屏:

Ctrl + B,然后 %

上下分屏:

Ctrl + B,然后 "

关闭当前分屏:

Ctrl + B,然后 X

九、推荐的 AutoDL 实际训练流程

这是我个人最推荐的新手训练流程。

进入项目:

cd ~/autodl-tmp/Pytorch-UNet-master

创建 tmux:

tmux new -s train

启动训练:

python train.py \
    --epochs 120 \
    --batch-size 16 \
    --lr 1e-4 \
    --num-workers 8 \
    --no-wandb

后台挂起:

Ctrl + B
D

之后:

  • 可以关闭网页
  • 可以断开 VSCode
  • 可以退出 SSH

训练依然会继续。

想查看训练状态时:

tmux attach -t train

即可重新进入。


十、为什么深度学习训练一定要学 tmux?

因为服务器环境并不稳定:

  • VSCode 会断连
  • SSH 会超时
  • 浏览器会关闭
  • AutoDL 页面会刷新

如果不用 tmux:

一断连,训练直接白跑。

而 tmux 几乎是:

  • Linux 服务器
  • AutoDL
  • 深度学习训练
  • AI 项目复现

的“必修技能”。

很多人第一次真正理解服务器后台训练,就是从 tmux 开始的。


总结

tmux 的核心其实只有一句话:

“退出终端,但不退出程序。”

只要掌握:

tmux new -s train

和:

Ctrl + B
D

你就已经超过很多刚接触 Linux 服务器的新手了。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐