1. 前言
我们在使用yolov10进行训练的时候往往会因为各种各样的原因中断训练,如:
- 开了太多程序导致崩溃
- 突然断电
- 其他原因
这时候如果下次能继续上次训练的结果继续训练会节省很多时间
2.复现与解决办法
2.1 正常启动训练
我们先正常启动一个训练
from ultralytics import YOLOv10 #这里需要注意,这里导入的是YOLOv10
# 这个训练权重可以根据自己情况更换不同的权重文件,在后续权重文件章节会详细解释
# 关于这个yolov10n.pt文件从哪来,亦可以在后续权重文件章节找到下载路径
model = YOLOv10("yolov10n.pt")#这里启动训练,data为刚才的yaml文件路径,workers为0,表示单线程训练,windows系统中workers不为0可能会报错
model.train(data='yolov10-bvn.yaml',workers=0, epochs=50, batch=-1)
这个路径的\runs\detect\train5就是当前训练的模型文件的存储位置
2.2 中断训练并进行断点续训配置
- 可以看到当前模型训练到第7遍我结束了训练
- 找到前文中提到的模型存储位置的last.pt文件,这是最后一次训练完成后的模型,复制其绝对路径
- 修改启动训练的代码
from ultralytics import YOLOv10 #这里需要注意,这里导入的是YOLOv10#断点续训启动方式,这个绝对路径就是上文中提到的last.pt文件路径model = YOLOv10("G:/yolo/yolov10/yolov10-main/runs/detect/train/weights/last.pt")
# 中断训练的权重文件中的last.pt
results = model.train(resume=True)
2.3 断点续训启动
可以看到启动训练之后直接是第7轮训练,前文中是在第7轮训练时中断的
至此断点续训完成