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 等。
参数 | 默认值 | 描述 |
---|---|---|
model | None | 模型文件路径,用于训练。 |
data | None | 数据集配置文件路径(例如 coco8.yaml)。 |
epochs | 100 | 总训练 epoch 数。 |
batch | 16 | 批量大小,可调整为整数或自动模式。 |
imgsz | 640 | 训练目标图像大小。 |
device | None | 用于训练的设备,如 cpu、0、0,1 或 mps。 |
save | True | 启用保存训练检查点和最终模型权重。 |
更多训练设置的详细指南,请参阅相关的 Ultralytics 官方文档。
更多推荐
所有评论(0)