从零开始使用YOLOv8和v11——Linux系统使用指令部署大规模训练记录

        在之前的文章中记录了YOLO环境的配置安装:从零开始使用YOLOv8和v11(最新版本使用环境已更新)——环境配置与极简指令(CLI)操作:1篇文章解决—直接使用:模型部署 and 自建数据集:训练微调-CSDN博客

        如何自建数据集转为YOLO格式:从零开始使用YOLOv11——Yolo检测detect数据集自建格式转换为模型训练格式:20w+图片&1w+类别代码测试成功_yolo能分析json数据集-CSDN博客

        但是上述内容基本都是在Window系统下完成的(因为window系统的用户交互更加简单方便),在部署大规模模型训练,使用显卡集群服务器进行训练模型时,Linux系统因其系统的稳定性,以及Pytorch等生态的优化功能,而更受青睐。

        但是Linux系统的指令操作又很繁琐,本人并不熟悉Linux系统,因此本文记录学习使用过程。

目录

一、环境配置

二、训练数据上传

        1.上传数据到Linux

        2.下载数据tar解包

        3.项目文件夹创建、移动

 三、YOLO配置文件与训练设置

        1.修改数据集yaml文件

​        2.yolo settings:YOLO训练设置

四、模型训练与参数回传

        1.训练

        2.最好模型参数回传windows


 一、环境配置

        首先要在Linux系统上配置好 CUDAminiconda环境,由于这些“前辈们”已经安装完毕了,于是“坐享其成”。在后续可能真要从头开始按照CUDA环境时再记录。

        再安装Pytorch和YOLO11的ultralytics包,这里参考之前的环境配置文章,这里只不过根据CUDA版本安装了最新版的Torch和Ultralytics。

        Torch版本地址:https://pytorch.org/get-started/previous-versions/

# 安装cuda12.4版本的Torch
pip install torch==2.4.1 torchvision==0.19.1 torchaudio==2.4.1 --index-url https://download.pytorch.org/whl/cu124

# 安装最新版yolo11的ultralytics
pip install ultralytics==8.3.34

二、训练数据上传

        首先是数据集的构建和传输,如何构建YOLO格式的数据集在上一篇文章中已经记录,这里特别记录一种方法,将在window系统环境下创建好的数据集上传至Linux系统的服务器

        本文采用的方法是使用Python自带的虚拟网站服务方式——http.server(确保Linux和Window系统都以安装Python)

        1.上传数据到Linux

        首先在已建好的数据目录下,输入cmd进入命令行窗口,在窗口内输入指令即可创建虚拟网站,可以地址加通过最后设置的端口号(8000)访问下载该文件夹下的内容。

# python创建虚拟网站上传文件
python -m http.server 8000

        注意此时访问要输入的是数据所在的电脑服务器对应的网络地址,这个可以在命令行使用netstat 查看。

# 查看数据所在电脑服务器的网址
netstat

        现在在另一台电脑或服务器,先还是在window下做实验,打开任意浏览器输入netstat上的数据本地网址加上在http.server后设置的端口号(:8000),就可以直接打开此文件并支持下载了。

        Linux系统中只支持指令进行操作,没有这样图形可视化的界面。使用的是常用的Linux的curl指令。具体来说,curl后用-o(小写英文o),后跟新的文件名,可以将下载文件改名为你设定的新名;后用-O(大写英文O),会按照原数据文件名称保存。最后要加上之前的网址和端口号。

# 改名下载保存
curl -o dataset http://xxx:8000/test.txt

# 保留名称下载
curl -O http://xxx:8000/test.txt

        特别的,curl命令只能一次下载一个具体文件(不支持文件夹的传输),因此想要将数据集上传到Linux中,需要先将数据集打包成 tar 包(注意不要使用其他如zip、rar等压缩格式,这是因为这些都不方便在Linux下解压),之后再在Linux下使用自带的 tar 指令解包。

        推荐直接使用 7zip 直接打包即可。

        具体使用指令上传到Linux服务器效果如下。可以通过 ls 指令查看当前目录下的所有文件,可以看到已经通过网络下载将coco8.tar包保存在Linux本地目录了。

        2.下载数据tar解包

        然后使用 tar -xvf 指令就可以直接解包到本地目录。

# tar解包下载包
tar -xvf coco8.tar

        3.项目文件夹创建、移动

        然后需要创建YOLO进行训练的文件,这是为了方便后续设置模型配置文件、数据配置文件、模型参数、验证效果保存等的路径设置,与其他文件隔离开。

        下面将文件创建、文件移动、文件删除的指令都归纳在下。

# 当前目录创建名为yolo的新文件夹
mkdir yolo

# 移动images和labels文件进yolo文件夹
mv images yolo
mv labels yolo

# 删除coco8.tar文件
rm coco8.tar

# 进入新建的yolo文件夹
cd yolo

        按顺序执行上述指令效果如下。

 三、YOLO配置文件与训练设置

        1.修改数据集yaml文件

        上述将数据集上传到Linux系统后,要想开始训练还需要将数据集的yaml配置文件和模型yolo11的yaml配置文件也上传上去,上传方法和之前一致,使用curl命令,这里不再赘述。特别的,要注意数据集配置文件的地址设置,将其设置为Linux系统中训练数据集存放的绝对路径

        为了文件组织更严谨,在yolo下新建coco目录将数据都存放在此。

        可以通过下面指令来获得目录的绝对路径。

# 获取当前目录绝对地址
pwd

         修改coco8.yaml配置文件中的数据路径 path

        将修改后的数据配置文件和模型配置文件都上传到 yolo 文件目录下。如果Linux服务器网络不好的,还要上传一个yolo11n.pt 的模型参数文件,因为在训练评估中会用到,如果目录下没有会在线下载。

         2.yolo settings:YOLO训练设置

        在window中,使用的是pycharm平台下terminal进行训练的,一些yolo训练的配置参数没有去仔细修改,在Linux系统中需要进行设置。

        具体来说,在当前创建的yolo目录下(注意需要激活创建的虚拟环境下),输入yolo settings 可以获取当前的默认设置。

        需要将下图中的黄框内的内容修改为当前新建的yolo目录,这样训练时候就会在datasets_dir的目录新建runs文件夹用来保存过程结果和模型训练的参数保存

# 查询yolo配置
yolo settings

# 配置参数
yolo settings datasets_dir="/home/xxx/yolo"

四、模型训练与参数回传

        1.训练

        有了上述准备之后,就可以按之前文章中的命令行进行训练了。结果会保存在当前目录的新建 runs/detect/train 下。

        如果训练中途出现意外导致中断了,只需在原始命令中将 model= 改为上述保存地址runs/detect/train/weights/last.pt 并加上恢复训练指令参数 resume=true,即可从中断点恢复训练。

        2.最好模型参数回传windows

        和直接上传一个方法,只需在Linux下使用命令创建虚拟网站即可,windows下可以直接浏览器访问下载。

# Linux上虚拟网站提供服务
python3 -m http.server 8000

        最后如果训练都完成了,参数也下载好了,想要“删库跑路”,可以使用下面命令,注意一定要指定好最后的文件名。

# 删库跑路
rm -rf yolo

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值