在 YOLOv8 上进行迁移学习的问题

问题描述 投票:0回答:1

我在我的数据集上训练了一个自定义 YOLOv8s 模型,该模型有 1 个类 - “Employee”。我希望将原始 YOLOv8s 模型(具有 80 个类)作为我的基本模型,并从我的自定义模型进行迁移学习。我尝试使用以下命令来实现此目的:

yolo task=detect mode=train data=data.yaml model=yolov8s.yaml pretrained=yolov8s.pt epochs=25 imgsz=640 plots=True

但这会返回以下错误:

RuntimeError: Dataset 'data.yaml' error  data.yaml 'names' length 1 and 'nc: 80' must match.

出现此问题的原因是基本 YOLOv8 模型中的类数量与我训练过的自定义模型中的类数量不匹配。基础和自定义 YOLOv8 模型中的类数量是否必须相同?

YOLOv8 文档没有提供正确的代码来解释如何进行迁移学习。

yolo transfer-learning yolov8
1个回答
0
投票

我找到了这个答案,它似乎适用于您的问题。 https://github.com/ultralytics/ultralytics/issues/7793#issuecomment-1908622002

特别是这部分:

对于迁移学习,您应该确保您的新数据集 包括原始类和附加类。 model.yaml 文件应反映类的总数(原始+新)。什么时候 您使用 .train() 方法开始训练,模型应该 自动检测提供的数据集中的类数。

© www.soinside.com 2019 - 2024. All rights reserved.