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

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

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

        但是上述内容基本都是在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

### 配置 PyCharm 连接到 AutoDL 服务器进行 YOLOv8 模型训练 #### 设置 SSH 远程解释器 为了能够在 PyCharm 中远程运行代码,在本地开发环境中配置 SSH 解释器是必要的。这允许通过安全的方式访问远程服务器上的 Python 环境。 1. 打开 PyCharm 并进入 `File` -> `Settings` (Windows/Linux) 或者 `PyCharm` -> `Preferences` (macOS). 2. 寻找并点击左侧菜单中的 `Project: <your_project_name>` 下的 `Python Interpreter`. 3. 在右上角找到齿轮图标,选择 `Add...`. 4. 接下来会看到多个选项;这里应该选择 `SSH Interpreter`. 输入 AutoDL 服务器的相关信息,比如主机名、端口、用户名以及私钥文件路径来完成身份验证[^1]. #### 安装依赖库 一旦成功设置了远程解释器,下一步就是安装所需的软件包以便支持 YOLOv8训练过程: ```bash pip install ultralytics ``` 这条命令会在指定的虚拟环境下安装 Ultralytics 提供的支持 YOLOv8 版本的官方库[^2]. #### 数据集准备 对于自定义数据集而言,通常需要按照特定格式整理好图像及其对应的标注文件。确保这些资源位于易于访问的位置,并且可以通过脚本轻松加载它们作为输入给定模型框架。 假设已经有一个 COCO 格式的 JSON 文件描述了所有的类别标签边界框位置,则可以利用如下方式读取该文件并将之转换成适合 YOLO 使用的形式: ```python from pathlib import Path import json def convert_coco_to_yolo(coco_json_path, output_dir): with open(coco_json_path) as f: coco_data = json.load(f) image_id_to_filename = {image['id']: image['file_name'] for image in coco_data['images']} categories = {category['id']: category['name'] for category in coco_data['categories']} yolo_labels = {} for annotation in coco_data['annotations']: image_id = annotation['image_id'] bbox = annotation['bbox'] class_id = str(annotation["category_id"]) filename = image_id_to_filename[image_id] if not filename in yolo_labels: yolo_labels[filename] = [] normalized_bbox = [ (bbox[0] + bbox[2]/2)/coco_data['width'], (bbox[1] + bbox[3]/2)/coco_data['height'], bbox[2]/coco_data['width'], bbox[3]/coco_data['height'] ] line = " ".join([class_id]+list(map(str,normalized_bbox))) yolo_labels[filename].append(line) outpath = Path(output_dir) outpath.mkdir(parents=True, exist_ok=True) for key,value in yolo_labels.items(): txt_file = outpath / Path(key).with_suffix('.txt') content = "\n".join(value)+"\n" txt_file.write_text(content) convert_coco_to_yolo('instances_train.json', './labels/train/') ``` 这段代码片段展示了如何将标准 COCO JSON 转换成适用于 YOLO 训练的数据结构[^3]. #### 开始训练 最后一步是在 PyCharm 内部启动实际的训练流程。创建一个新的 Python 文件或笔记本单元格,编写下面所示的内容以调用预训练权重初始化网络架构,并传入之前处理好的数据集路径参数执行 fit 方法即可开始迭代优化直至收敛为止. ```python from ultralytics import YOLO model = YOLO('yolov8n.yaml') # Load model specification from YAML file or use pretrained weights like 'yolov8n.pt' results = model.train(data='./datasets/', epochs=100, imgsz=640) ``` 上述操作完成后就可以顺利地在 PyCharm IDE 上面管理整个项目周期内的各项任务了——从环境搭建直到最终部署上线前的各项准备工作都能得到妥善安排[^4].
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值