ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

学习pytorch框架和YOLO笔记(重要)

2026/8/3 17:52:10 拓冰建站 浏览量
学习pytorch框架和YOLO笔记(重要)

目录

一:学习了pytorch一步步从无到有训练创建模型和加载使用自定义模型的过程

观后感:参考该章节其他博文  关于PyTorch与YOLO 库的思考,AI 4问

遗留问题:有待搭建环境验证和知识细节的总结吸收,后面有时间再总结吧

二:学习了调用官方提供的模型,一步步数据准备到数据标注到生成自己的best.pt模型,加载到使用的过程

观后感:参考下面AI提问:

通过YOLO创建模型有几种方式?

基于 Ultralytics YOLO (v8/v9/v10/v11) 创建模型【4 种主流方式】

方式 1:加载官方预训练权重(最常用,迁移学习首选)

方式 2:通过 yaml 配置文件【新建空白网络(随机初始化权重)】

方式 3:yaml + 预训练权重 组合(自定义结构 + 加载预训练权重)

方式 4:从已经训练完成的自定义.pt 权重加载模型

补充区分:4 种方式适用场景对照表

容易踩坑关键知识点

拓展:旧版 YOLOv5(非 ultralytics 统一库)

方式 4:从已经训练完成的自定义.pt 权重加载模型 具体流程是什么

方式 4:加载自己训练好的自定义 best.pt/last.pt 完整流程

前置说明

两大使用场景流程

场景一:加载模型直接推理(预测图片 / 视频 / 摄像头)【最常用】

完整代码流程

场景二:加载模型【增量继续训练】(断点续训、二次微调)

完整流程

⚠️ 关键硬性限制

完整分步标准化流程(文字版,便于你记笔记)

❗高频坑点整理

坑 1:混淆 resume=True 和加载 best.pt

坑 2:想修改类别数量,不能直接加载旧 pt

坑 3:pt 版本不兼容

坑 4:路径中文问题

延伸对比区分(帮你理清和另外两种加载方式差异)

额外工程拓展

best.pt 是怎么生成的,是在已有官方提供的模型生成的新的模型吗

一句话核心结论

一、完整生成链路(标准流程)

二、分步详细解释

1)起点:训练启动时,我们一般执行代码

2)训练过程发生了什么?

3)best.pt/last.pt 如何自动产出?

三、关键概念厘清(解决你的核心疑问)

问题 1:best.pt 是在官方模型基础上生成的新模型?

问题 2:有没有办法不依赖官方模型,从零训练得到 best.pt?

四、极易踩坑的认知误区

五、极简类比帮助记忆

补充延伸


一:学习了pytorch一步步从无到有训练创建模型和加载使用自定义模型的过程

观后感:参考该章节其他博文  关于PyTorch与YOLO 库的思考,AI 4问

遗留问题:有待搭建环境验证和知识细节的总结吸收,后面有时间再总结吧

二:学习了调用官方提供的模型,一步步数据准备到数据标注到生成自己的best.pt模型,加载到使用的过程

注意:最后的课程目前只看了前5个章节

观后感:参考下面AI提问:

通过YOLO创建模型有几种方式?

基于 Ultralytics YOLO (v8/v9/v10/v11) 创建模型【4 种主流方式】

先统一概念:创建模型 = 实例化 YOLO 网络结构,用于训练 / 迁移学习

注意:Darknet 原版 YOLO (v3/v4) 属于另一套体系,下面默认讲现在工业最常用的 Ultralytics YOLO

方式 1:加载官方预训练权重(最常用,迁移学习首选)

python

from ultralytics import YOLO # 自动下载预训练pt权重,构建完整YOLO网络 model = YOLO("yolov8n.pt")

✅特点:

  1. 网络结构 + 预训练参数全部就绪
  2. 直接拿来训练自己数据集(迁移学习),收敛速度快
  3. 支持检测 / 分割 / 分类 / 姿态任务

方式 2:通过 yaml 配置文件【新建空白网络(随机初始化权重)】

python

model = YOLO("yolov8n.yaml")

✅特点:

  1. 只搭建网络骨架,没有训练权重,参数全部随机初始化
  2. 相当于从零开始训练(Train from scratch)
  3. 可以复制 yaml 文件,自己修改通道数、深度、宽度,自定义 YOLO 结构

重点区分:.yaml 只定义网络结构,没有权重;.pt包含网络 + 权重

方式 3:yaml + 预训练权重 组合(自定义结构 + 加载预训练权重)

python

# 使用自己修改后的网络yaml,同时载入官方预训练权重 model = YOLO("custom_yolov8.yaml").load("yolov8n.pt")

✅特点:自己修改网络结构(增加注意力模块、修改 neck 层),同时复用主干预训练权重;模型改造、网络创新开发最常用方案。

方式 4:从已经训练完成的自定义.pt 权重加载模型

python

# 加载你自己训练完毕保存的模型 model = YOLO("runs/train/exp/weights/best.pt")

✅特点:

  1. 载入你训练好的成品模型,一般两种用途:
    • 继续二次训练(增量训练)
    • 直接推理预测图片、视频

补充区分:4 种方式适用场景对照表

表格

创建方式命令写法权重状态使用场景
1YOLO("yolov8n.pt")自带官方预训练权重常规项目、快速训练目标检测
2YOLO("yolov8n.yaml")随机初始化(空白模型)从零完整训练、学术实验
3YOLO("custom.yaml").load("xx.pt")自定义结构 + 载入预训练权重修改网络、创新算法
4YOLO("best.pt")载入自己训练完成权重增量续训 / 部署推理

容易踩坑关键知识点

  1. YOLO("xxx.yaml") 只是创建网络,没有权重,直接推理完全不能用,必须先训练!
  2. YOLO("xxx.pt") 文件内部同时保存【网络结构 + 参数权重】
  3. 如果你只有权重文件,没有 yaml,依然可以直接加载 pt 文件创建模型;
  4. 必须依赖 PyTorch 底层! 没有 torch,以上所有写法全部报错。