3.2 使用 Ultralytics YOLO 进行模型训练


前言:

这一部分在我看来就是他们公司推销自己了 


3.2 使用 Ultralytics YOLO 进行模型训练

Ultralytics YOLO 生态系统和集成

引言

训练深度学习模型的过程包括向模型提供数据并调整其参数,以便其能够做出准确的预测。Ultralytics YOLO11 的 Train 模式专为高效训练目标检测模型而设计,充分利用现代硬件的能力。本指南旨在涵盖使用 YOLO11 训练模型所需的所有详细信息。

为什么选择 Ultralytics YOLO 进行训练?

以下是选择 YOLO11 Train 模式的一些令人信服的理由:

  • 高效性:无论是在单 GPU 环境还是在多 GPU 环境下,YOLO11 都能最大限度地发挥硬件的性能。

  • 多样性:可以使用自定义数据集进行训练,也可以使用 COCO、VOC、ImageNet 等常用数据集。

  • 用户友好:提供简单且强大的 CLI 和 Python 接口,便于进行训练。

  • 超参数灵活性:支持广泛的超参数自定义,以优化模型性能。

Train 模式的主要功能

以下是 YOLO11 Train 模式的一些显著功能:

  • 自动数据集下载:COCO、VOC、ImageNet 等标准数据集在首次使用时会自动下载。

  • 多 GPU 支持:可以无缝扩展训练到多个 GPU,以加速训练过程。

  • 超参数配置:可以通过 YAML 配置文件或 CLI 参数来修改超参数。

  • 可视化和监控:实时跟踪训练指标和学习过程的可视化,以获得更好的洞察。

提示:YOLO11 的数据集(如 COCO、VOC、ImageNet 等)在首次使用时会自动下载,例如 yolo train data=coco.yaml

使用示例

在 COCO8 数据集上训练 YOLO11n,进行 100 个 epoch,图像大小为 640。可以使用 device 参数指定训练设备。如果没有传递该参数,系统会自动选择可用的 GPU,否则会使用 CPU。

单 GPU 和 CPU 训练示例

如果有 GPU 可用,训练将自动使用 GPU,否则将使用 CPU。

from ultralytics import YOLO

# 加载模型
model = YOLO("yolo11n.yaml")  # 从 YAML 构建新模型
model = YOLO("yolo11n.pt")  # 加载预训练模型(推荐用于训练)
model = YOLO("yolo11n.yaml").load("yolo11n.pt")  # 从 YAML 构建并传递权重

# 训练模型
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

多 GPU 训练

多 GPU 训练通过在多个 GPU 之间分配训练负载,更高效地利用可用的硬件资源。可以通过 Python API 和命令行界面启用此功能。指定要使用的 GPU 设备 ID 即可启用多 GPU 训练。

多 GPU 训练示例

使用两个 GPU(CUDA 设备 0 和 1)进行训练的示例:

from ultralytics import YOLO

# 加载模型
model = YOLO("yolo11n.pt")  # 加载预训练模型(推荐用于训练)

# 使用两个 GPU 训练模型
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device=[0, 1])

Apple M1 和 M2 MPS 训练

Ultralytics YOLO 模型现已支持 Apple M1 和 M2 芯片,允许在利用 Metal Performance Shaders (MPS) 框架的设备上进行模型训练。MPS 提供了一种高性能的方法,在苹果自定义芯片上执行计算和图像处理任务。

要在 Apple M1 和 M2 芯片上启用训练,只需在训练过程中将设备指定为 "mps"。

MPS 训练示例
from ultralytics import YOLO

# 加载模型
model = YOLO("yolo11n.pt")  # 加载预训练模型(推荐用于训练)

# 使用 MPS 训练模型
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device="mps")

恢复中断的训练

从之前保存的状态恢复训练是深度学习模型训练中的一项重要功能。在训练过程意外中断时,或者希望使用新数据或进行更多 epoch 来继续训练时,此功能非常有用。

恢复训练时,Ultralytics YOLO 会加载上次保存的模型权重,并恢复优化器状态、学习率调度器和 epoch 号,从而无缝继续训练过程。

恢复训练示例
from ultralytics import YOLO

# 加载模型
model = YOLO("path/to/last.pt")  # 加载部分训练的模型

# 恢复训练
results = model.train(resume=True)

通过设置 resume=True,训练函数将继续从上次保存的状态开始训练。

训练设置

YOLO 模型的训练设置包括各种超参数和训练过程中使用的配置。这些设置会影响模型的性能、速度和精度。关键的训练设置包括批量大小、学习率、动量和权重衰减等。选择合适的优化器、损失函数以及训练数据集的构成对于优化模型性能至关重要。

有关详细的训练设置和参数的使用说明,请参阅 Ultralytics 官方文档。

FAQ

如何使用 Ultralytics YOLO11 训练目标检测模型?

可以使用 Python API 或命令行接口进行训练,以下是单 GPU 和 CPU 的训练示例:

from ultralytics import YOLO

# 加载模型
model = YOLO("yolo11n.pt")  # 加载预训练模型(推荐用于训练)

# 训练模型
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
YOLO11 Train 模式的主要功能有哪些?
  • 自动数据集下载:首次使用时自动下载 COCO、VOC、ImageNet 等标准数据集。

  • 多 GPU 支持:可扩展训练到多个 GPU,以加快训练速度。

  • 超参数配置:可以通过 YAML 文件或命令行参数自定义超参数。

  • 可视化和监控:实时跟踪训练指标,以获得更好的洞察。

如何恢复中断的训练?

要恢复中断的训练,设置 resume=True 并指定上次保存的检查点路径。

from ultralytics import YOLO

# 加载部分训练的模型
model = YOLO("path/to/last.pt")

# 恢复训练
results = model.train(resume=True)
可以在 Apple M1 和 M2 芯片上训练 YOLO11 模型吗?

是的,Ultralytics YOLO11 支持在 Apple M1 和 M2 芯片上进行训练,只需将设备指定为 "mps"。

from ultralytics import YOLO

# 加载预训练模型
model = YOLO("yolo11n.pt")

# 在 M1/M2 芯片上训练模型
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device="mps")
常见的训练设置有哪些,如何配置它们?

Ultralytics YOLO11 允许通过参数配置各种训练设置,例如批量大小、学习率、epoch 等。

参数默认值描述
modelNone模型文件路径,用于训练。
dataNone数据集配置文件路径(例如 coco8.yaml)。
epochs100总训练 epoch 数。
batch16批量大小,可调整为整数或自动模式。
imgsz640训练目标图像大小。
deviceNone用于训练的设备,如 cpu、0、0,1 或 mps。
saveTrue启用保存训练检查点和最终模型权重。

更多训练设置的详细指南,请参阅相关的 Ultralytics 官方文档。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夏驰和徐策

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值