后台运行任务
在正常情况下,使用命令 python train.py 运行机器学习的训练或推理任务时,该进程会挂载到系统的前台,这意味着如果您通过SSH连接到远程实例进行操作,一旦SSH连接因网络延迟或波动等原因 中断,与SSH会话关联的前台进程(包括您的训练任务)也将被终止,这会导致您失去所有未保存的训练进度。
为了防止由于网络中断导致训练进程意外关闭,推荐通过 SSH登录实例 后,使用诸如 Tmux、SCREEN 或 nohup 等工具来运行长时间的任务,这些工具可以帮助您将训练/推理/长时间运行的进程放到后台运行,从而在断开SSH连接后仍能保持运行。
使用这些工具,您可以确保即使发生网络问题,您的训练任务也不会中断,并且在网络恢复后可以继续监控进程的状态。
Tmux
tmux 是一个强大的终端复用器,它允许您在一个窗口中运行多个终端会话,并且可以在断开连接后继续保持这些会话运行;以下是基本的 tmux 使用方法,以及如何使用它将训练进程放到后台的示例:
1. 基本 Tmux 使用
1. 启动一个新的 tmux 会话
tmux new -s session_name
这里 session_name 是您给新会话指定的名字
2. 分离 tmux 会话
在 tmux 会话中,按下 Ctrl + b然后按 d ,这将 分离 您的 tmux 会话,让它在后台运行。
3. 列出所有 tmux 会话
tmux ls
这个命令将显示所有正在运行的 tmux 会话。
4. 重新连接到现有的 tmux 会话
tmux attach -t session_name
tmux a -t session_name
使用您之前创建的会话名字来重新连接
5. 关闭当前 tmux 会话
在 tmux 会话中,可以通过输入 exit 或者按下 Ctrl + d 来退出会话;当最后一个窗口被关闭时,tmux 会话也会结束。
2. 使用 Tmux 运行训练进程示例
1. 启动一个新的 tmux 会话
tmux new -s training
这将创建一个名为 training 的新会话。
2. 在 tmux 会话中,启动您的训练进程
python train.py