YOLO11模型保存路径在哪?一文讲清楚

YOLO11模型保存路径在哪?一文讲清楚

你刚跑完YOLO11训练,终端最后一行显示“Results saved to runs/segment/train2”,心里却冒出一个最实际的问题:我辛辛苦苦训了30轮的模型,到底存在哪儿了?下次想接着用、想部署、想给别人看效果,该去哪个文件夹找那个.pt文件?

别急——这不是配置错误,也不是路径丢失,而是YOLO11(基于ultralytics 8.3.x)默认保存逻辑和新手容易忽略的细节共同导致的“找不着家”现象。本文不讲原理、不堆参数,只聚焦一个动作:精准定位、快速提取、安全复用。从训练结束那一刻起,手把手带你摸清每一份权重的落点,包括best.ptlast.pt、带优化器的原始权重,以及如何自定义保存位置。


1. 默认保存路径的完整结构解析

YOLO11训练完成后,所有产出物都集中在一个顶层目录下,这个目录由两部分动态拼接而成:固定前缀runs/+ 任务类型子目录 + 用户指定或自动生成的运行名

1.1 核心路径公式

runs/{task}/{project}/{name}/
  • {task}:任务类型,如detect(目标检测)、segment(实例分割)、pose(姿态估计)、classify(图像分类)、obb(旋转框检测)
  • {project}:项目名称,默认为runs/{task}下的子文件夹,如traintrain2my_project
  • {name}:单次运行名称,默认为train,若存在同名则自动递增为train2train3

举个真实例子:
当你执行model.train(data="point-offer-seg.yaml", epochs=30)且未指定projectname时,系统会自动创建:
runs/segment/train2/
这就是你在训练日志末尾看到的Results saved to runs/segment/train2的由来。

1.2runs/segment/train2/目录内关键文件一览

进入该目录后,你会看到如下标准结构(已按功能归类):

runs/segment/train2/ ├── weights/ # ← 模型权重就在这里!重点看 │ ├── best.pt # 最佳验证指标对应的模型(不含优化器) │ └── last.pt # 最后一轮训练完成的模型(不含优化器) ├── results.csv # 训练全过程指标记录(CSV格式,可Excel打开) ├── results.png # 自动绘制的损失/精度曲线图 ├── args.yaml # 本次训练所有参数的快照(含data、epochs、imgsz等) ├── train_batch0.jpg # 第0批训练数据可视化(含增强效果) ├── val_batch0_pred.jpg # 验证集首批次预测结果图 ├── val_batch0_labels.jpg # 验证集首批次真实标签图 └── dataset.json # 数据集统计信息(类别数、图片总数等)

注意:weights/best.ptweights/last.pt剥离了优化器状态(optimizer state)的纯净模型,体积更小、加载更快,这才是你部署、推理、分享时真正该用的文件

1.3 为什么看不到带优化器的权重?

YOLO11(ultralytics ≥8.0.200)默认在训练结束时自动剥离优化器,这是为了:

  • 减小模型体积(通常减少30%~50%)
  • 避免跨环境加载失败(不同PyTorch版本对optimizer兼容性差)
  • 符合工业部署规范(推理模型不需要梯度更新)

你可以在训练日志中明确看到这行提示:
Optimizer stripped from runs/segment/train2/weights/last.pt, 45.1MB

如果你确实需要保留优化器(例如要断点续训),必须显式关闭该行为。


2. 如何自定义模型保存路径?

硬记runs/segment/train2/weights/best.pt太费劲?完全没必要。YOLO11提供两级灵活控制:项目级统一管理单次运行精准命名

2.1 方法一:通过projectname参数指定根目录(推荐)

model.train()中直接传入两个字符串参数:

results = model.train( data="point-offer-seg.yaml", epochs=30, imgsz=640, batch=8, project="my_yolo11_models", # ← 所有输出存到这个文件夹下 name="seg_point_offer_v1" # ← 本次运行专属子目录名 )

执行后,模型将保存在:
my_yolo11_models/seg_point_offer_v1/weights/best.pt

优势:

  • 路径语义清晰,一眼看出用途(seg_point_offer_v1
  • 同一项目下可并行多组实验(v1,v2,with_aug,no_mosaic
  • 不污染默认runs/目录,便于清理

2.2 方法二:修改ultralytics/cfg/default.yaml(全局生效,慎用)

找到源码中ultralytics/cfg/default.yaml文件,修改以下字段:

# ultralytics/cfg/default.yaml project: my_yolo11_models # 全局默认项目名 name: train # 全局默认运行名(仍会自动递增为train2等)

风险提示:此方式影响所有后续训练,且需确保你有修改源码权限。仅建议在团队统一开发环境中使用,个人调试不推荐。

2.3 方法三:训练后手动复制(应急方案)

如果已经训完且路径混乱,用一行命令即可提取核心权重:

# 从默认路径拷贝best.pt到当前目录 cp runs/segment/train2/weights/best.pt ./my_best_model.pt # 或重命名并移至指定文件夹 mkdir -p ./deploy/models mv runs/segment/train2/weights/best.pt ./deploy/models/point_offer_seg_best_v1.pt

3. 权重文件详解:best.ptvslast.ptvs 带优化器版

别再凭名字猜用途。这三类文件本质不同,适用场景截然分开:

文件名是否含优化器是否含训练参数适用场景文件大小特点
best.pt❌ 否是(args.yaml中记录)推理、部署、效果展示最小(仅模型+配置)
last.pt❌ 否快速验证最终效果、轻量部署best.pt基本一致
last_optimizer.pt(需手动保存)断点续训、调试学习率显著更大(含optimizer.state_dict)

3.1 如何生成带优化器的权重?(断点续训必备)

YOLO11默认不保存,但你可以主动开启:

from ultralytics import YOLO model = YOLO("yolo11m-seg.yaml").load("weights/yolo11m-seg.pt") # 关键:设置 save_period=1 且 keep_ckpt=True(ultralytics ≥8.3.9支持) train_params = { "data": "point-offer-seg.yaml", "epochs": 30, "save_period": 1, # 每1轮保存一次 "keep_ckpt": True, # ← 保留优化器状态!生成 last_optimizer.pt "project": "my_models", "name": "debug_resume" } results = model.train(**train_params)

生成文件包括:

  • my_models/debug_resume/weights/last.pt(无优化器)
  • my_models/debug_resume/weights/last_optimizer.pt(含优化器,可用于resume=True

3.2 加载时如何区分?

  • 推理/部署:永远用YOLO("path/to/best.pt")
  • 断点续训:必须用YOLO("yolo11m-seg.yaml").load("path/to/last_optimizer.pt")并传入resume=True
# 正确续训写法 model = YOLO("yolo11m-seg.yaml") model.load("my_models/debug_resume/weights/last_optimizer.pt") results = model.train(resume=True) # resume=True 会自动读取优化器状态

4. 实战验证:三步确认你的模型真正在哪儿

光看文档不如亲手验证。用以下三个命令,5秒内锁定路径:

4.1 步骤1:查看训练日志末尾(最快)

训练结束后,终端最后几行必有:

30 epochs completed in 0.071 hours. Optimizer stripped from runs/segment/train2/weights/last.pt, 45.1MB Optimizer stripped from runs/segment/train2/weights/best.pt, 45.1MB Results saved to runs/segment/train2

→ 路径已明示:runs/segment/train2/weights/

4.2 步骤2:用Python代码实时获取(防手误)

在训练脚本末尾加一行,运行后直接打印绝对路径:

print(" 最佳模型路径:", results.save_dir / "weights" / "best.pt") print(" 最终模型路径:", results.save_dir / "weights" / "last.pt")

输出示例:

最佳模型路径: /home/user/my_project/runs/segment/train2/weights/best.pt 最终模型路径: /home/user/my_project/runs/segment/train2/weights/last.pt

4.3 步骤3:Linux/Mac终端快速定位(适合批量检查)

# 查找所有 .pt 文件(按修改时间倒序,最新的在最上面) find runs -name "*.pt" -type f -printf '%T@ %p\n' | sort -n | tail -5 | cut -d' ' -f2- # 输出类似: # runs/segment/train2/weights/best.pt # runs/segment/train2/weights/last.pt # runs/detect/train/weights/best.pt

5. 常见误区与避坑指南

这些“看似合理实则踩坑”的操作,新手90%都试过:

5.1 误区1:“我把train.py放在ultralytics/目录里,模型应该也在那儿”

❌ 错。YOLO11的保存路径与脚本位置完全无关,只取决于project/name参数和默认规则。train.py放 anywhere 都不影响输出位置。

5.2 误区2:“weights/yolo11m-seg.pt是我训出来的模型”

❌ 错。这是预训练权重(pretrained),位于你手动创建的weights/文件夹下,是训练起点,不是训练结果。你的成果永远在runs/下。

5.3 误区3:“best.pt总是比last.pt好,所以只留best.pt

谨慎。best.pt基于验证集指标(如mAP50),但若验证集有偏差,last.pt可能在实际场景中更鲁棒。建议两者都保留,并用真实测试集对比效果。

5.4 误区4:“路径太长,我直接改源码把runs/换成./models/

❌ 危险。ultralytics内部多处硬编码依赖runs/前缀(如TensorBoard日志、CSV生成、图片保存)。强行修改易导致训练中断或文件错位。


6. 部署前必做:模型瘦身与格式转换

拿到best.pt后别急着用,先做两件事提升可用性:

6.1 步骤1:导出为ONNX(跨平台部署基石)

from ultralytics import YOLO model = YOLO("runs/segment/train2/weights/best.pt") model.export(format="onnx", dynamic=True, simplify=True)

生成:runs/segment/train2/weights/best.onnx
优势:可在Windows/Linux/嵌入式设备运行,无需Python环境。

6.2 步骤2:验证导出模型是否等效

# 加载ONNX模型并推理同一张图 onnx_model = YOLO("runs/segment/train2/weights/best.onnx") results_onnx = onnx_model("datasets/seg_point_offer_20240930/images/00001.jpg") # 与原PT模型对比结果(box坐标、mask、置信度) pt_model = YOLO("runs/segment/train2/weights/best.pt") results_pt = pt_model("datasets/seg_point_offer_20240930/images/00001.jpg") print("ONNX与PT结果一致:", abs(results_onnx[0].boxes.xyxy - results_pt[0].boxes.xyxy).max() < 1e-3)

7. 总结:记住这四句话,永不错过你的模型

  • 第一句:YOLO11的模型永远不在你放train.py的地方,而在runs/{task}/{project}/{name}/weights/下。
  • 第二句:日常使用只认best.ptlast.pt,它们已剥离优化器,开箱即用。
  • 第三句:想自定义路径?训练时加project="xxx"name="yyy",比记路径简单十倍。
  • 第四句:部署前务必导出ONNX,并用真实图片验证输出一致性——路径对了,效果还得稳。

你现在可以立刻打开终端,输入ls runs/segment/*/weights/,看着那一排清晰的best.pt,心里踏实了。模型不是消失,只是藏在了有规律的地方。而规律,正是工程化的开始。

--- > **获取更多AI镜像** > > 想探索更多AI镜像和应用场景?访问 [CSDN星图镜像广场](https://ai.csdn.net/?utm_source=mirror_blog_end),提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1216942.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何合规获取离线教材?国家中小学智慧教育平台资源本地化指南

如何合规获取离线教材&#xff1f;国家中小学智慧教育平台资源本地化指南 【免费下载链接】tchMaterial-parser 国家中小学智慧教育平台 电子课本下载工具 项目地址: https://gitcode.com/GitHub_Trending/tc/tchMaterial-parser 国家中小学智慧教育平台提供了丰富的电子…

戴森球计划蓝图决策指南:从资源匹配到工厂优化的进阶之路

戴森球计划蓝图决策指南&#xff1a;从资源匹配到工厂优化的进阶之路 【免费下载链接】FactoryBluePrints 游戏戴森球计划的**工厂**蓝图仓库 项目地址: https://gitcode.com/GitHub_Trending/fa/FactoryBluePrints 在戴森球计划的浩瀚宇宙中&#xff0c;蓝图选择直接决…

3步打造戴森球计划高效工厂:从蓝图设计到模块化布局的新手攻略

3步打造戴森球计划高效工厂&#xff1a;从蓝图设计到模块化布局的新手攻略 【免费下载链接】FactoryBluePrints 游戏戴森球计划的**工厂**蓝图仓库 项目地址: https://gitcode.com/GitHub_Trending/fa/FactoryBluePrints 你是否也曾遇到这样的困境&#xff1a;刚铺设好的…

微信防撤回工具深度侦查:从技术谜题到完美拦截的破解之道

微信防撤回工具深度侦查&#xff1a;从技术谜题到完美拦截的破解之道 【免费下载链接】RevokeMsgPatcher :trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁&#xff08;我已经看到了&#xff0c;撤回也没用了&#xff09; 项目地址: https://gitcode…

从安装到调用,Qwen3-Embedding-0.6B全流程演示

从安装到调用&#xff0c;Qwen3-Embedding-0.6B全流程演示 1. 这个模型到底能帮你做什么 你可能已经听说过“向量”“嵌入”这些词&#xff0c;但它们到底意味着什么&#xff1f;简单说&#xff1a;把一段文字变成一串数字&#xff08;比如1024个浮点数&#xff09;&#xff…

protel文件直接下单?小批量pcb板生产厂家支持现状

以下是对您提供的技术博文进行 深度润色与结构重构后的专业级技术文章 。全文严格遵循您的所有要求&#xff1a; ✅ 彻底去除AI痕迹&#xff0c;语言自然、老练、有工程师口吻&#xff1b; ✅ 摒弃模板化标题&#xff08;如“引言”“总结”&#xff09;&#xff0c;改用真…

微信防撤回工具RevokeMsgPatcher:消息留存与聊天记录保护完全指南

微信防撤回工具RevokeMsgPatcher&#xff1a;消息留存与聊天记录保护完全指南 【免费下载链接】RevokeMsgPatcher :trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁&#xff08;我已经看到了&#xff0c;撤回也没用了&#xff09; 项目地址: https:/…

ESP32教程之MQTT协议在家居自动化中的操作指南

以下是对您提供的博文内容进行 深度润色与结构重构后的技术文章 。整体风格已全面转向 真实技术博主口吻 &#xff1a;去除了所有AI腔调、模板化表达和教科书式分节&#xff0c;代之以逻辑严密、节奏紧凑、经验沉淀浓厚的“工程师现场笔记”风格&#xff1b;语言更贴近一线…

Glyph输入预处理技巧:提升图像质量的实用方法

Glyph输入预处理技巧&#xff1a;提升图像质量的实用方法 1. 为什么预处理对Glyph如此关键 Glyph不是传统意义上的视觉理解模型&#xff0c;它走了一条特别的路&#xff1a;把长文本“画”成图&#xff0c;再让视觉语言模型去“看图说话”。这个过程里&#xff0c;图像不是最…

GPEN镜像训练指导:如何准备数据对并微调

GPEN镜像训练指导&#xff1a;如何准备数据对并微调 你是否遇到过这样的情况&#xff1a;手头有一批珍贵的人像照片&#xff0c;但因拍摄设备限制、存储老化或传输压缩&#xff0c;导致细节模糊、肤色失真、纹理丢失&#xff1f;想用GPEN做高质量修复&#xff0c;却发现预训练…

开源模拟器终极指南:从零开始在电脑上畅玩经典游戏

开源模拟器终极指南&#xff1a;从零开始在电脑上畅玩经典游戏 【免费下载链接】citra 项目地址: https://gitcode.com/GitHub_Trending/ci/citra 想要在电脑上重温那些令人难忘的经典游戏吗&#xff1f;开源模拟器为你提供了一个免费、灵活的解决方案&#xff0c;让你…

5个语音情感识别工具推荐:Emotion2Vec+ Large镜像一键部署教程

5个语音情感识别工具推荐&#xff1a;Emotion2Vec Large镜像一键部署教程 1. 为什么需要语音情感识别工具&#xff1f; 你有没有遇到过这样的场景&#xff1a;客服系统听不出用户语气里的不满&#xff0c;导致投诉升级&#xff1b;在线教育平台无法判断学生是否困惑或走神&am…

用SenseVoiceSmall做了个情绪识别小项目,效果太惊艳了

用SenseVoiceSmall做了个情绪识别小项目&#xff0c;效果太惊艳了 你有没有试过听一段语音&#xff0c;光靠声音就能判断说话人是开心、生气&#xff0c;还是疲惫&#xff1f;不是靠内容&#xff0c;而是靠语气、节奏、停顿&#xff0c;甚至那一声轻轻的叹气——这种“听声辨情…

用YOLOv13官版镜像搭建无人机视觉系统可行吗

用YOLOv13官版镜像搭建无人机视觉系统可行吗 这个问题很实际——不是“能不能跑起来”&#xff0c;而是“能不能真正在无人机上稳定、低延迟、高精度地干活”。很多开发者看到新模型就兴奋&#xff0c;一通部署后才发现&#xff1a;在服务器上跑得飞快的模型&#xff0c;装到机…

Speech Seaco Paraformer Python版本要求:环境依赖检查清单

Speech Seaco Paraformer Python版本要求&#xff1a;环境依赖检查清单 1. 环境准备与依赖检查总览 Speech Seaco Paraformer 是基于阿里 FunASR 框架构建的高性能中文语音识别模型&#xff0c;由科哥完成 WebUI 二次开发与镜像封装。它不是简单调用 API 的轻量工具&#xff…

不用再查资料了!开机启动脚本一篇讲清楚

不用再查资料了&#xff01;开机启动脚本一篇讲清楚 你是不是也经历过这样的场景&#xff1a;写好了一个监控脚本、一个数据采集程序&#xff0c;或者一个Web服务&#xff0c;每次重启服务器都要手动运行一遍&#xff1f;反复输入bash /path/to/script.sh&#xff0c;还要确认…

LivePortrait人像动画引擎跨平台部署与技术探索

LivePortrait人像动画引擎跨平台部署与技术探索 【免费下载链接】LivePortrait Bring portraits to life! 项目地址: https://gitcode.com/GitHub_Trending/li/LivePortrait 在数字创作领域&#xff0c;AI驱动的实时肖像动画技术正逐渐改变视觉内容的生产方式。LivePort…

GPT-OSS生产部署挑战:高显存需求应对方案

GPT-OSS生产部署挑战&#xff1a;高显存需求应对方案 1. 为什么GPT-OSS的20B模型让显存成了“拦路虎” 你刚下载完gpt-oss-20b-WEBUI镜像&#xff0c;满怀期待地双击启动——结果卡在加载界面&#xff0c;GPU显存占用飙到98%&#xff0c;系统开始报错&#xff1a;“CUDA out …

告别繁琐配置,Paraformer离线版实现中文语音转文字全流程

告别繁琐配置&#xff0c;Paraformer离线版实现中文语音转文字全流程 你是否经历过这样的场景&#xff1a;会议录音长达两小时&#xff0c;却要花半天手动整理成文字稿&#xff1b;客户访谈音频堆在文件夹里&#xff0c;想快速提取关键信息却无从下手&#xff1b;教学视频没有…

YimMenu安全使用与功能拓展实战指南

YimMenu安全使用与功能拓展实战指南 【免费下载链接】YimMenu YimMenu, a GTA V menu protecting against a wide ranges of the public crashes and improving the overall experience. 项目地址: https://gitcode.com/GitHub_Trending/yi/YimMenu 一、基础认知&#x…