YOLO 模型训练
更新: 2026/3/2 字数: 0 字 时长: 0 分钟
本文档详细介绍在 Windows 系统上训练 YOLO 系列模型的完整流程。MacOS 和 Linux 系统的训练方法类似。
YOLO26
YOLO26 支持通过 Ultralytics 统一接口进行训练与断点续训,以下示例基于官方预训练权重进行模型训练。
开始训练
在项目根目录下新建文件:yolo26_train.py
from ultralytics import YOLO
if __name__ == "__main__":
# 加载 YOLO 官方预训练权重模型(请替换为你的模型路径)
model = YOLO(r"G:\website\yolo\ultralytics-8.3.163\yolo26n.pt")
model.train(
data=r"G:\website\yolo\ultralytics-8.3.163\ultralytics\cfg\datasets\coco8.yaml", # 训练数据集配置文件(自行替换)
epochs=500, # 训练轮数
imgsz=(640, 320), # 根据应用场景选择合适的输入尺寸(如竖屏或横屏)
batch=-1, # 自动推荐 batch size(根据显卡自动适配)
cache='ram', # 数据缓存方式,加快训练速度
workers=1, # 数据加载线程数
project="results", # 结果保存目录
name="yolo26n" # 当前任务名称
)具体可参阅训练参数说明
继续训练(断点续训)
基于已训练生成的权重文件继续训练。
在项目根目录新建文件:yolo26_train_resume.py
from ultralytics import YOLO
if __name__ == "__main__":
# 加载上一次训练生成的模型权重(替换为你的实际路径)
model = YOLO(r"results/yolo26n/weights/last.pt")
# 继续训练
model.train(resume=True)YOLO13
待补充
YOLO12
参考 YOLO26 的训练方式
YOLO11
参考 YOLO26 的训练方式
YOLOv10
参考 YOLO26 的训练方式
YOLOv9
参考 YOLO26 的训练方式
YOLOv8
参考 YOLO26 的训练方式
YOLOv7
待补充
YOLOv6
待补充
YOLOv5
对于 YOLO26 源码环境,可参考 YOLO26 的训练方法;若使用 YOLOv5 源码环境,训练方式尚未补充,你可以访问其 YOLOv5 GitHub 仓库 查看详情。
YOLOx
待补充
批量训练不同版本
用最新版的 YOLO26 源码是可以支持训练 YOLO26、YOLO12、YOLO11、YOLOv10、YOLOv9、YOLOv8、YOLOv5 版本的, 基于哪个 pt 文件训练出来的模型,就是哪个版本模型。
开始训练
在项目根目录新建文件:yolo_train.py
from ultralytics import YOLO
# 需要训练的模型列表,请提前下载对应的 `.pt` 模型文件并放置在源码根目录下
models = [
'yolov8n', 'yolov8s', 'yolov8m',
'yolov9t', 'yolov9s', 'yolov9m',
'yolov10n', 'yolov10s', 'yolov10m',
'yolo11n', 'yolo11s', 'yolo11m',
'yolo12n', 'yolo12s', 'yolo12m',
'yolo26n', 'yolo26s', 'yolo26m'
]
if __name__ == "__main__":
for m in models:
print(f"\n===== 开始训练模型: {m}.pt =====")
model = YOLO(m + ".pt")
model.train(
data=r"G:\website\yolo\ultralytics-8.3.163\ultralytics\cfg\datasets\coco8.yaml", # 训练数据集配置文件(自行替换)
epochs=500, # 推荐初次可先用较少轮数测试,确认无误后再增加
imgsz=(640, 320), # 根据数据形状选择合适的尺寸,例如竖屏
batch=1, # 自动推荐 batch size
cache="ram", # 数据缓存方式
workers=1, # 数据加载线程数
project="results", # 结果保存目录
name=m # 输出目录名称与模型名一致
)
print(f"===== 完成训练: {m} =====\n")具体可参阅训练参数说明
继续训练(断点续训)
当批量训练过程中中断,或需要在已有训练结果基础上继续训练时,可基于生成的权重文件进行续训。
在项目根目录新建文件:yolo_train_resume.py
from ultralytics import YOLO
# 需要继续训练的模型列表(与首次训练保持一致)
models = [
'yolov8n', 'yolov8s', 'yolov8m',
'yolov9t', 'yolov9s', 'yolov9m',
'yolov10n', 'yolov10s', 'yolov10m',
'yolo11n', 'yolo11s', 'yolo11m',
'yolo12n', 'yolo12s', 'yolo12m',
'yolo26n', 'yolo26s', 'yolo26m'
]
if __name__ == "__main__":
for m in models:
print(f"\n===== 继续训练模型: {m} =====")
# 加载上一次训练生成的权重文件
model = YOLO(f"results/{m}/weights/last.pt") # 路径根据实际输出目录调整
# 继续训练
model.train(resume=True)
print(f"===== 完成续训: {m} =====\n")📌 说明:
last.pt:上一次训练保存的最新权重resume=True:自动读取上次训练状态(epoch、优化器等)并继续训练- 可单独修改
models列表,仅续训指定模型
训练参数说明
data
训练数据集配置文件路径(.yaml)
epochs
训练轮数(完整遍历数据集次数)
imgsz
输入图像尺寸(支持正方形与矩形)
参数格式:
imgsz=(height, width)
即:第一个参数为 高(H),第二个参数为 宽(W)
针对手机端场景重点说明:
✅ 竖屏(手机自动化最常见)
imgsz=(640, 320) # 高 640,宽 320✅ 横屏
imgsz=(320, 640) # 高 320,宽 640✅ 通用正方形模型(不推荐用于手机端)
imgsz=640 # 等价于 (640, 640)📌 重要说明:
- 宽高必须为 32 的倍数(如 320、640、960),否则模型会自动对齐补边,影响性能与精度
- 输入尺寸越大,推理速度越慢,占用显存越高
- 手机屏幕通常为长方形,使用正方形尺寸会引入大量无效像素计算
👉 手机端强烈推荐使用 矩形尺寸匹配屏幕比例,可明显提升推理速度并降低资源消耗
📌 建议: 训练时尽量与实际手机截图分辨率比例一致,可获得最佳速度与精度平衡
batch
-1:自动推荐(GPU环境推荐)- 手动设置:
1 / 8 / 16
cache
'ram':缓存到内存(速度快)False:不缓存
workers
数据加载线程数
project
结果输出目录
name
训练任务名称(子目录名)
训练速度慢如何解决
如果训练速度较慢,通常是由于使用 CPU 或低性能显卡导致,建议采用以下方案:
使用带独立 GPU 的电脑进行训练
推荐使用 NVIDIA 显卡(支持 CUDA),可大幅提升训练速度。
相比 CPU 训练,GPU 训练通常可提升数倍至数十倍速度。
租用云端 GPU 服务器(推荐)
可按小时租用 GPU 训练服务器,仅需训练时开启,训练完成后释放资源。
优势:
- 训练速度快(通常 1~2 小时即可完成常规模型训练)
- 按小时计费,成本可控
- 无需本地高性能设备
适合场景:
- 临时训练
- 大模型训练
- 本地设备性能不足
