1.1 如何实现深度学习模型的离线训练
如何实现服务器离线训练模型,后台执行
主要有两种方法:tmux命令 和 nohup命令,主要讲解tmux的命令的使用:
1.1.1 tmux的命令
原理描述:通过tmux创建一个会话,这个会话将持续运行直到被用户显式地终止。因此,只要会话保持开启,会话内的进程也将持续运行,从而使得模型可以在离线状态下继续训练。
Step1 :建立一个会话
tmux newtmux new -s <session-name>
Step2:执行你需要进行的任务
例子
# 显示进程 top # OR 进行模型训练 python train.py
Step3:离开会话(注意这里的离开,并不是结束)
# firstctrl+b # second d
首先按下Ctrl+b,随后按d键。Ctrl+b是一个指令,用于通知会话准备接收一个命令,而按下d键表示要"分离"当前会话(detach的意思)。这样操作后,你可以返回到创建tmux会话之前的终端环境。即便关闭该终端,你的Python脚本或其他进程也会继续运行。
理论上,这一步骤已足够,但为了不让tmux会话永久占用服务器资源,你需要在某个时刻结束该tmux会话。以下是如何操作
Step4: 回到会话
tmux attach -t <session-name>
为了结束tmux会话,你需要指定会话目标。这里的“-t”代表目标(target)参数,而<session-name>
则是你的tmux会话名称。如果你不确定会话名称,可以通过执行tmux ls
命令来查看当前所有的tmux会话及其名称。这样,你就能准确地指向并结束特定的tmux会话。
Step5:当需要结束任务的时候,需要结束会话
在tmux会话内部,你可以直接输入exit
命令来结束当前会话。这种方法简单直接,适用于当你处于需要关闭的tmux会话中时。
另一方面,无论是在会话内部还是外部,都可以使用tmux kill-session -t <session-name>
命令来终止特定的tmux会话。这里,-t
参数后跟的<session-name>
是你想要结束的会话名称。这种方法允许你从任何终端会话中精确地结束指定的tmux会话,提供了更大的灵活性。如果你不确定会话的名称,可以先用tmux ls
命令查看所有活跃的会话列表。
# 会话里面exit# 会话里面和外面都可以tmux kill-session -t <session-name>