使用另一个数据集更新 Yolo V8 训练

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

我使用从here下载的数据集训练了 YOLO V8 模型,并使用了 Ultralytics 和 Roboflow 库。 我使用了以下命令(使用预先训练的模型

yolov8n.pt
可下载此处):

yolo task=detect mode=train model=C:\Training\yolov8n.pt data=C:\DATASET\DIRECTORY\data.yaml epochs=20 imgsz=640

此命令创建了一个名为

best.pt
的文件:

C:\Users\USERNAME\runs\detect\train\weights

我可以用它来检测物体。但是我对结果并不完全满意,所以我想用另一个数据集更新训练(保留之前的训练)。有具体的命令吗?

谢谢!

python yolo yolov8 roboflow ultralytics
1个回答
0
投票

这里最简单的方法是从

best.pt
检查点开始对新数据集进行训练:

yolo task=detect mode=train model=C:\Users\USERNAME\runs\detect\train\weights\best.pt data=C:\DATASET\DIRECTORY\data.yaml epochs=20 imgsz=640

有一些细微差别。

  • 您实际上无法将不同训练的训练结果相加。在这种情况下,您只需从已经好的点开始训练,但它们可以在当前训练期间重写,特别是如果新数据集具有不同的类列表或其中的图像与第一个数据集严重不同。所谓的“灾难性遗忘”
  • 考虑降低第二次训练过程的学习率,以保存第一次训练的更多信息。此外,您可能希望冻结训练模型的前 n 层并训练其剩余部分。可用的训练参数在这里:https://docs.ultralytics.com/modes/train/#arguments

如果您需要模型平等地考虑来自不同数据集的信息,最好将它们合并为一个,并在这个统一的数据上训练模型。

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