YOLO26多GPU训练:分布式并行加速教程

最新 YOLO26 官方版训练与推理镜像
本镜像基于 YOLO26 官方代码库 构建,预装了完整的深度学习开发环境,集成了训练、推理及评估所需的所有依赖,开箱即用。

1. 镜像环境说明

该镜像为YOLO26的训练与推理提供了高度集成的运行环境,省去繁琐的依赖配置过程,特别适合在多GPU服务器上快速开展目标检测任务。

  • 核心框架: pytorch == 1.10.0
  • CUDA版本: 12.1
  • Python版本: 3.9.5
  • 主要依赖: torchvision==0.11.0, torchaudio==0.10.0, cudatoolkit=11.3, numpy, opencv-python, pandas, matplotlib, tqdm, seaborn 等常用科学计算和视觉处理库

所有组件均已预先编译并优化,确保在NVIDIA GPU集群环境下稳定运行。镜像默认包含Conda环境管理工具,便于隔离项目依赖。

2. 快速上手

在这里插入图片描述
启动完是这样的
在这里插入图片描述

2.1 激活环境与切换工作目录

在使用前,请先激活专用的 Conda 环境:

conda activate yolo

在这里插入图片描述

由于系统盘空间有限,建议将代码复制到数据盘进行操作。执行以下命令完成迁移:

cp -r /root/ultralytics-8.4.2 /root/workspace/

在这里插入图片描述

进入新目录开始后续操作:

cd /root/workspace/ultralytics-8.4.2

在这里插入图片描述
在这里插入图片描述

2.2 模型推理

YOLO26支持多种推理模式,包括图像、视频和实时摄像头输入。我们以一张测试图为例演示基本用法。

修改 detect.py 文件如下:

# -*- coding: utf-8 -*-
"""
@Auth :落花不写码
@File :detect.py
@IDE :PyCharm
@Motto :学习新思想,争做新青年
"""

from ultralytics import YOLO

if __name__ == '__main__':
    # 加载模型
    model = YOLO(model=r'yolo26n-pose.pt')
    # 执行推理
    model.predict(
        source=r'./ultralytics/assets/zidane.jpg',
        save=True,
        show=False,
    )

参数说明:

  • model: 可指定本地模型文件路径,如 yolo26s.ptyolo26m.pt 等不同尺寸版本
  • source: 支持图片路径、视频文件或摄像头编号(如 0 表示默认摄像头)
  • save: 设为 True 将保存结果图像至 runs/detect/predict/ 目录
  • show: 是否弹窗显示结果,远程服务器建议设为 False

运行推理脚本:

python detect.py

在这里插入图片描述
在这里插入图片描述

推理结果会自动保存,终端输出包含检测对象类别、置信度及坐标信息。

2.3 模型训练

要使用自己的数据集进行训练,需准备符合YOLO格式的数据结构,并更新配置文件。

数据集配置

上传你的数据集后,编辑 data.yaml 文件,结构如下:

train: /path/to/train/images
val: /path/to/val/images

nc: 80
names: ['person', 'bicycle', 'car', ...]

在这里插入图片描述
data.yaml 参数解析如图所示:
在这里插入图片描述

训练脚本设置

创建或修改 train.py 文件:

# -*- coding: utf-8 -*-
"""
@Auth :落花不写码
@File :train.py
@IDE :PyCharm
@Motto :学习新思想,争做新青年
"""
import warnings
warnings.filterwarnings('ignore')
from ultralytics import YOLO

if __name__ == '__main__':
    # 定义模型结构
    model = YOLO(model='/root/workspace/ultralytics-8.4.2/ultralytics/cfg/models/26/yolo26.yaml')
    # 加载预训练权重(可选)
    model.load('yolo26n.pt')  # 注意:小数据集上可能不如从头训练
    # 开始训练
    model.train(
        data=r'data.yaml',
        imgsz=640,
        epochs=200,
        batch=128,
        workers=8,
        device='0',  # 单卡训练
        optimizer='SGD',
        close_mosaic=10,
        resume=False,
        project='runs/train',
        name='exp',
        single_cls=False,
        cache=False,
    )

2.4 多GPU分布式训练配置

为了充分发挥多GPU性能,我们需要对训练脚本进行关键调整。

修改设备参数

device='0' 改为使用多个GPU:

device='0,1,2,3'  # 使用四张GPU

或者更灵活地让系统自动识别可用设备:

import torch
device_ids = ','.join([str(i) for i in range(torch.cuda.device_count())])

然后传入:

model.train(..., device=device_ids)
启动DDP分布式训练

Ultralytics内部已集成对分布式数据并行(DDP)的支持。只需确保:

  1. PyTorch版本支持多GPU
  2. CUDA_VISIBLE_DEVICES 正确设置
  3. Batch size适当增大以匹配显卡数量

典型多GPU训练命令:

python -m torch.distributed.run --nproc_per_node=4 train.py

这将使用4个进程分别控制4张GPU,显著提升训练速度。

注意:当使用DDP时,总batch size应为单卡batch size × GPU数量。例如原batch=128,4卡则可设为batch=32 per GPU,总effective batch=128。

性能优化建议
  • 梯度累积:若显存不足,可通过 accumulate=2~4 实现等效大batch训练
  • 混合精度:添加 amp=True 启用自动混合精度,加快计算并节省显存
  • 数据缓存:小数据集可启用 cache=True 将数据加载至内存

更新后的训练调用示例:

model.train(
    data='data.yaml',
    imgsz=640,
    epochs=200,
    batch=32,           # per GPU
    workers=8,
    device='0,1,2,3',
    optimizer='AdamW',
    amp=True,
    accumulate=2,
    project='runs/dist_train',
    name='multi_gpu_exp'
)

这样可在保持总batch size不变的前提下,充分利用多卡资源,训练速度提升接近线性。

2.5 结果下载与本地部署

训练完成后,模型权重和日志会保存在 runs/train/exp/ 目录下。

通过Xftp等SFTP工具可轻松下载:

  • 左侧为本地电脑目录
  • 右侧为服务器文件系统
  • 鼠标双击文件即可开始下载
  • 大文件建议先压缩再传输,节约时间

在这里插入图片描述

双击传输任务可查看进度详情。

3. 已包含权重文件

镜像内已预下载常用YOLO26系列权重,位于代码根目录:

在这里插入图片描述

包括但不限于:

  • yolo26n.pt:超轻量级,适用于边缘设备
  • yolo26s.pt:小型,平衡速度与精度
  • yolo26m/l/x.pt:中到超大型,高精度场景适用
  • yolo26n-pose.pt:姿态估计专用模型

这些模型均可直接用于推理或作为迁移学习起点。

4. 常见问题

  • 数据集准备:请确保标注文件为YOLO格式(每图对应一个.txt),类别索引从0开始连续编号
  • 环境激活:镜像默认进入 torch25 环境,务必执行 conda activate yolo 切换至正确环境
  • 多卡失败排查
    • 检查 nvidia-smi 是否识别所有GPU
    • 确认CUDA驱动与PyTorch版本兼容
    • 查看是否有显存冲突或其他进程占用
  • 训练中断恢复:设置 resume=True 可从中断处继续训练,自动加载最新checkpoint

5. 参考资料


获取更多AI镜像

想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

Logo

更多推荐