首页 > 其他分享 >实例后台运行训练或任务

实例后台运行训练或任务

时间:2024-05-13 19:19:17浏览次数:23  
标签:训练 train screen tmux 会话 实例 后台 进程

后台运行进程
在正常情况下,使用命令 python train.py 运行机器学习的训练或推理任务时,该进程会挂载到系统的前台,这意味着如果您通过SSH连接到远程实例进行操作,一旦SSH连接因网络延迟或波动等原因中断,与SSH会话关联的前台进程(包括您的训练任务)也将被终止,这会导致您失去所有未保存的训练进度。
立即免费体验:https://gpumall.com/login?type=register&source=cnblogs
为了防止由于网络中断导致训练进程意外关闭,推荐通过 SSH登录实例 后,使用诸如 Tmux、SCREEN 或 nohup 等工具来运行长时间的任务,这些工具可以帮助您将训练/推理/长时间运行的进程放到后台运行,从而在断开SSH连接后仍能保持运行。

autodl#恒源云#矩池云#算力云#恒源云 实例迁移#autodl 官网#autodi#GpuMall#GPU云#AutoDL#AotuDL 算力云#GpuMall智算云#AI#大数据#算力租赁#大模型#深度学习#人工智能#算力变现

使用这些工具,您可以确保即使发生网络问题,您的训练任务也不会中断,并且在网络恢复后可以继续监控进程的状态。

Tmux
tmux 是一个强大的终端复用器,它允许您在一个窗口中运行多个终端会话,并且可以在断开连接后继续保持这些会话运行;以下是基本的 tmux 使用方法,以及如何使用它将训练进程放到后台的示例:

  1. 基本 Tmux 使用
  2. 启动一个新的 tmux 会话

tmux new -s session_name

这里 session_name 是您给新会话指定的名字

  1. 分离 tmux 会话 在 tmux 会话中,按下 Ctrl + b然后按 d ,这将 分离 您的 tmux 会话,让它在后台运行。

  2. 列出所有 tmux 会话

tmux ls

这个命令将显示所有正在运行的 tmux 会话。

  1. 重新连接到现有的 tmux 会话

tmux attach -t session_name
tmux a -t session_name

使用您之前创建的会话名字来重新连接

  1. 关闭当前 tmux 会话 在 tmux 会话中,可以通过输入 exit 或者按下 Ctrl + d 来退出会话;当最后一个窗口被关闭时,tmux 会话也会结束。

  2. 使用 Tmux 运行训练进程示例

  3. 启动一个新的 tmux 会话

tmux new -s training

这将创建一个名为 training 的新会话。

  1. 在 tmux 会话中,启动您的训练进程

python train.py

这将开始运行您的训练脚本,并且训练过程中的日志输出也会在这个tmux会话中打印。

  1. 一旦训练开始运行,您可以通过按 Ctrl + b 然后按 d 来从 tmux 会话中分离,让训练进程在后台继续运行。

  2. 关闭您的SSH连接或关闭终端,您的训练进程将在 tmux 会话中继续运行

  3. 之后当您想要检查训练进程的状态时,可以重新连接到tmux会话

tmux attach -t training

这样,即使您的SSH连接被中断,您的训练进程也不会受到影响;通过 tmux 您可以随时重新连接到会话来查看进程的状态或输出。

SCREEN
screen 是一个功能强大的工具,它允许您在单个终端窗口中运行多个虚拟终端会话,并且可以在断开连接后保持这些会话运行,以下是 screen 的基本使用方法,以及如何使用 screen 将训练进程放到后台的示例:

  1. 基本 Screen 使用
  2. 启动新的 screen 会话

screen -S session_name

这里 session_name 是您给新会话指定的名字

  1. 分离 screen 会话 在 screen 会话中,按下 Ctrl + a 然后按 d ,这将 分离 您的 screen 会话,让它在后台运行。

  2. 列出所有 screen 会话

screen -ls

4.重新连接到现有的 screen 会话 在 screen 会话中,可以通过输入 exit 来退出会话,当最后一个窗口被关闭时,screen 会话也会结束。

  1. 使用 Screen 运行训练进程示例
  2. 首先,启动一个新的 screen 会话

screen -S training

这将创建一个名为 training 的新会话。

  1. 在 screen 会话中,启动您的训练进程

python train.py

这将开始运行您的训练脚本。

  1. 一旦训练开始运行,您可以通过按 Ctrl + a 然后按 d 来从 screen 会话中分离,让训练进程在后台继续运行

  2. 关闭您的 SSH 连接或关闭终端,您的训练进程将在 screen 会话中继续运行

  3. 之后当您想要检查训练进程的状态时,可以重新连接到 screen 会话

screen -r training

通过使用 screen,即使您的 SSH 连接被中断,您的训练进程也不会受到影响,通过 screen 您可以随时重新连接到会话来查看进程的状态或输出。

nohup
nohup 是一个命令行工具,用于在注销或关闭终端后继续运行命令,它可以将输出重定向到一个文件中,使得在后台运行的进程的输出不会丢失,以下是如何使用 nohup 将训练进程放到后台并持续记录日志的示例:

  1. 使用 nohup 运行训练进程示例
    1.使用 nohup 运行训练并重定向输出

nohup python train.py > train.log 2>&1 &

这将在后台启动 train.py 脚本,并将标准输出(stdout)和标准错误(stderr)都重定向到 train.log 文件中。

  1. 检查训练日志 训练过程的输出将被写入到 train.log,您可以使用以下命令动态查看日志。

tail -f train.log

这将显示日志文件的最新内容,并实时更新。

  1. 结束通过 nohup 启动的进程
    要结束通过 nohup 启动的进程,您需要先找到该进程的进程 ID(PID),然后使用 kill 命令终止它。

  2. 查找进程ID

ps aux | grep train.py

这将列出所有包含 train.py 的进程,查找相应的进程ID(通常是列出的第二列)。

  1. 结束进程 使用找到的PID来终止进程

假设 PID 为 63832

kill 63832

执行后上述命令后,如果还可以通过 ps aux | grep train.py 看到进程,则需要使用 -9 参数来强制终止

kill -9 63832

注意
请注意,直接使用 kill 命令通常会发送一个优雅的终止信号(SIGTERM),允许进程安全地清理和关闭,如果进程没有响应,需要使用 kill -9 PID 强制终止。

标签:训练,train,screen,tmux,会话,实例,后台,进程
From: https://www.cnblogs.com/GpuMall/p/18189826

相关文章

  • 开发工具连接实例远程开发
    远程开发主要基于将开发环境(包括代码编辑、编译、运行等)从本地机器转移到远程服务器上,这个过程涉及几个关键组件和概念:立即免费体验:https://gpumall.com/login?type=register&source=cnblogs1.远程服务器远程服务器是托管远程开发环境的中心,可以是一个物理服务器,也可以是云中的......
  • 开发工具连接实例远程开发
    远程开发主要基于将开发环境(包括代码编辑、编译、运行等)从本地机器转移到远程服务器上,这个过程涉及几个关键组件和概念:立即免费体验:https://gpumall.com/login?type=register&source=cnblogs1.远程服务器远程服务器是托管远程开发环境的中心,可以是一个物理服务器,也可以是云中的......
  • Python3+Django2配置后台管理
    前言使用Django我们只需要做一些配置,就可以实现简单的后台管理系统,下面我们以新闻系统为例子来搭建后台。创建项目切换到工作空间,执行以下命令:django-admin.pystartprojectitstyle#进入itstyle文件夹cditstyle#创建newsAppmanage.pystartappnews项目结构:......
  • 代码随想录算法训练营day06 | 242.有效字母异位词
    242.有效的字母异位词题目链接文章讲解视频讲解时间复杂度o(n)空间复杂度o(n)classSolution{public:boolisAnagram(strings,stringt){unordered_map<char,int>s_map,t_map;for(charch:s)s_map[ch]++;for(charch:t)t......
  • AI-数据标注的方法 制作自己的数据 labelstudio的使用(训练自己的数据-1)
    lablestudio 是采用web界面的方式 或者采用docker部署创建数据存储所需文件夹:首先在Ubuntu服务器本地创建一个将来用于上传与保存数据和标注结果的文件夹并赋予所有用户对于该文件夹的读写权限,便于之后的数据管理。例如:mkdir-p/sharespace/myDatasudochmod777/s......
  • OSCP靶机训练Kioptrix Level 2
    Vulnhub——KioptrixLevel2前期准备:kali攻击机:10.0.0.4靶机:10.0.0.11网络适配器全部设置为NAT模式靶机需要去配置文件中将所有Bridge改为nat渗透过程第一步:主机存活探测arp-scan-l第二步:端口扫描nmap--min-rate10000-p-10.0.0.11第三步:基本信息扫描nmap......
  • OSCP靶机训练Kitoptrix Level 3
    Vulnhub——KioptrixVM3前期准备:kali攻击机:10.0.0.4靶机:10.0.0.12将两台机器都设置为NAT模式渗透过程:第一步:存活主机探测arp-scan-l第二步:端口扫描nmap--min-rate10000-p-10.0.0.12第三步:基本信息扫描nmap-sT-sC-sV-O-p22,8010.0.0.12第四步:WEB渗......
  • OSCP靶机训练Kioptrix Level 4
    Vulnhub——KioptrixLevel4前期准备:kali攻击机:10.10.10.12靶机:10.10.10.15将两台机器都设置为NAT模式渗透过程1、首先是存活主机探测,确认目标是否在线arp-scan-l2、然后对目标进行端口扫描, 确认目标开放了哪些端口以及服务3、开放了4个端口,首先目光集中在80端......
  • SciTech-BigDataAIML-TensorFlow-Model: 模型建立与训练
    TensorFlow模型建立与训练TensorFlow模型建立与训练本章介绍如何使用TensorFlow快速搭建动态模型。模型的构建:tf.keras.Model和tf.keras.layers模型的损失函数:tf.keras.losses模型的优化器:tf.keras.optimizer模型的评估:tf.keras.metrics前置知识Python-{zh-......
  • OSCP靶机训练Kioptrix Level 1
    Vulnhub——KioptrixLevel1前期准备:​ 1、kali攻击机:10.0.0.4 NAT模式​ 2、靶机:10.0.0.10 NAT模式​ 注意:​ 该靶机默认为桥接模式,且在虚拟机中修改为NAT模式,在靶机启动之后又自动更改为了桥接模式​ 需要在靶机的配置文件中进行修改​ 将所有Bridge修改为nat即可......