YOLO resume断点续训(不能用官方的权重,是自己训练一半生成的last.pt)

训练 YOLO 模型(v5/v8/v11)常需数百 epoch,耗时数天。断电、SSH 断开、显存溢出、进程误杀等意外极易导致训练中断,从头开始会浪费大量算力与时间。

断点续训(Resume Training)可从最近保存的检查点(checkpoint) 恢复训练,完整还原模型权重、优化器状态、学习率调度与训练进度

训练中断后,在对应的runs中对应训练的结果中包含两个关键文件:

  • last.pt:最新epoch的完整训练快照(用于续训)
  • best.pt :验证集最优权重(仅用于推理,不可直接续训

last.pt 绝非仅模型权重,而是全训练状态快照

  • 模型网络参数(权重 + 偏置)
  • 优化器状态(SGD/Adam 动量、梯度缓存)
  • 学习率调度器状态(当前步数、余弦退火参数)
  • 当前 epoch 计数与剩余轮数
  • 数据加载器随机种子(保证数据增强一致性)

成功续训日志会显示:

from epoch 217:接续中断前轮数,成功

from epoch 0:用了 best.pt 或路径错误,从头训练

必守前提(否则续训失败)

配置完全一致:data.yaml(类别数)、模型 yaml(网络结构)、batch size、device、超参(lr0、momentum)不可修改

last.pt 完整 :文件未损坏、路径正确、由同一代码版本生成

不混用 best.ptbest.pt 不含优化器状态,只能用于推理

在对应的.yaml文件中,只需要将resume修改为True,然后训练导入的预训练权重用训练一半的last.pt

复制代码
from ultralytics import YOLO

# 加载预训练模型
model = YOLO("./runs/detect/exp2/last.pt")  # n/s/m/l/x 任选

# 开始训练
model.train(
    data="your_data.yaml",    # 你的数据集配置 .\ultralytics\cfg\***.yaml
)
相关推荐
魏祖潇16 小时前
我在飞书里养了个“分身”——私聊喊它办事,群里 @ 它干活,还能替我传话
人工智能·机器学习
武子康2 天前
调查研究-191 SenseVoice 不只是 ASR:把语音从“转文字“升级成“理解状态“
人工智能·深度学习·openai
武子康3 天前
调查研究-189 Kronos 调研:金融 K 线基础模型,是真突破,还是量化圈的新玩具?
人工智能·深度学习·openai
哥布林学者6 天前
深度学习进阶(三十一)FlashAttention:IO 感知的精确注意力
机器学习·ai
通信小呆呆8 天前
当算法有了“五感”:多模态数据融合如何向人体感官协同学习?
人工智能·学习·算法·机器学习·机器人
xiao5kou4chang6kai48 天前
MATLAB机器学习、深度学习--从数据预处理到模型训练
深度学习·机器学习·matlab·数据预处理
renhongxia18 天前
世界模型作为AGI落地底层底座的作用
人工智能·深度学习·生成对抗网络·自然语言处理·知识图谱·agi