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

基于已训练YOLOv8权重续训更多epoch的实现问题

YOLOv8加载已训练权重继续训练的正确方法

这种基于已完成训练的权重(比如你下载的best.pt)在同数据集上继续训练的场景完全可行,本质是对自己训好的模型做微调,和中断恢复训练的逻辑不同,不需要依赖训练时生成的临时文件,调整代码写法就能解决运行问题。

修正后的CLI命令

原命令里的resume参数用错了——resume主要用于从中断的训练(比如用last.pt)恢复,保留之前的学习率、epoch计数等状态。你的场景是基于已完成的权重重新启动训练,不需要加resume,直接指定模型和训练参数就行:

%cd {HOME}
!yolo task=detect model=barcode_detection.pt data={dataset.location}/data.yaml epochs=100 imgsz=800 plots=True

如果确实想延续之前的训练进度(比如接着之前的epoch数往下算),那得保留当初训练生成的runs/detect/train/目录,用resume指向该目录下的last.pt,但你用的是下载的best.pt,所以上面的写法更适配你的需求。

修正后的Python代码

原代码有两个问题:一是不需要手动指定task=detect,YOLO会自动从权重文件识别任务类型;二是resume=True不适用你的场景,它会尝试寻找之前的训练目录,找不到就报错。正确写法如下:

from ultralytics import YOLO

model = YOLO("barcode_detection.pt")
# 直接设置训练参数,无需resume=True
results = model.train(epochs=200, save_period=10, data=f"{dataset.location}/data.yaml", plot=True)

要是想模拟“接着之前的epoch数训练”,可以加start_epoch参数,比如之前训了100个epoch,现在想从101开始训到200:

results = model.train(epochs=200, start_epoch=100, save_period=10, data=f"{dataset.location}/data.yaml", plot=True)

额外注意点

  • 先确认dataset.location对应的路径在Colab中存在,避免数据集找不到的错误
  • 如果data.yaml里的train/val路径是相对路径,要保证当前工作目录(%cd {HOME}后的目录)和路径匹配,或者直接用绝对路径写在yaml里

内容的提问来源于stack exchange,提问作者Siddhu Neehal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 23:13:13