You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

训练YOLOv8时出现IndexError的问题排查与求助

解决YOLOv8训练时的IndexError问题

核心错误原因

你的data.yaml文件存在明显矛盾:nc: 0表示类别数量为0,但names: ['particle']定义了1个类别,两者不匹配是触发索引越界错误的直接原因。YOLOv8会根据nc值初始化模型的类别输出维度,当nc=0时,模型无法处理标注中的类别索引(即使是0),从而抛出IndexError。


步骤1:修正data.yaml配置

将nc值改为与names列表长度一致的数值(这里是1),同时适配Windows系统的路径格式:

path: C:\Users\pksha\yolo  # 替换为你Windows系统下的实际项目路径,或用相对路径"."表示当前目录
train: train/images
val: val/images
nc: 1  # 必须和names的类别数量一致
names: ['particle']

步骤2:检查数据集结构与标注

确保你的数据集符合YOLO格式要求:

  • 项目目录下需包含train/images、train/labels、val/images、val/labels四个文件夹
  • 每张图像(如img1.jpg)对应同名的标注文件(img1.txt),标注格式为:类别索引 x_center y_center width height(所有坐标值需做归一化处理,类别索引从0开始,这里只能是0)

步骤3:调整训练代码(指定图像尺寸)

在训练时显式指定输入图像尺寸为416*416,匹配你的需求:

from ultralytics import YOLO

# 加载模型(从头训练用yaml,微调预训练模型用.pt)
model = YOLO("yolov8l.yaml")

# 启动训练,指定图像尺寸
results = model.train(data="data.yaml", epochs=1, imgsz=416)

内容的提问来源于stack exchange,提问作者Puneet Sharma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 03:52:46