news 2026/2/12 7:09:09

从0开始学YOLO11:Jupyter使用全解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
从0开始学YOLO11:Jupyter使用全解析

从0开始学YOLO11:Jupyter使用全解析

你是不是也遇到过这样的问题:下载了YOLO11镜像,点开Jupyter却不知道从哪下手?界面里一堆文件夹,train.py点开全是代码,连怎么运行都摸不着头脑?别急——这篇文章就是为你写的。不讲晦涩原理,不堆参数术语,只说你在Jupyter里真正要做的每一步:怎么打开、怎么看目录、怎么改代码、怎么点一下就跑起来、训练完结果在哪看、图片检测效果怎么保存……全程在浏览器里操作,不用敲命令行,小白也能照着做。

我们用的镜像是「YOLO11完整可运行环境」,它已经把Ultralytics 8.3.9、CUDA驱动、PyTorch、OpenCV、Jupyter Lab全装好了,连权重文件yolo11m.pt都预置在weights/目录下。你唯一要做的,就是打开浏览器,进入Jupyter,然后跟着这篇文字,像操作Word一样完成一次完整的YOLO11目标检测训练与推理。


1. 第一次打开Jupyter:认路比写代码更重要

当你启动YOLO11镜像后,控制台会输出类似这样的地址:

http://127.0.0.1:8888/?token=abc123def456...

复制整段链接,粘贴到Chrome或Edge浏览器中(不要用Safari,部分功能兼容性不佳),回车——你就进入了Jupyter Lab工作台。

注意:如果打不开,请确认镜像已成功运行,且端口8888未被占用;若提示“Invalid token”,说明链接已过期,重新查看终端最新输出的token链接。

刚进来的界面,左侧是文件导航栏,右侧是主工作区。别慌,我们先搞清三个核心区域:

  • 顶部菜单栏:File / Edit / View / Run / Kernel / Settings / Help
  • 左侧文件树:显示当前所有文件和文件夹,重点找ultralytics-8.3.9/这个主目录
  • 右侧面板:默认是空的,点击任意.py.ipynb文件,它就会在这里打开

你看到的不是黑底白字的命令行,而是一个图形化开发环境——这意味着:
不用记cd命令
不用背python train.py路径
所有操作点一点、双击一下就能执行

这就是Jupyter对新手最友好的地方。


2. 快速定位关键文件:5分钟理清项目结构

在左侧文件树中,展开ultralytics-8.3.9/目录,你会看到类似这样的结构:

ultralytics-8.3.9/ ├── datasets/ ← 你的数据放这里(图片+标签) ├── weights/ ← 预训练权重已存在:yolo11m.pt等 ├── train.py ← 核心训练脚本(已写好,可直接运行) ├── infer.py ← 推理脚本(检测图片/视频用) ├── ultralytics/ ← YOLO11源码库(不用动) └── ...

我们不需要从零新建工程,所有必需文件都已经存在且配置就绪。你只需关注这4个位置:

2.1train.py:点一下就能开始训练

双击打开train.py,你会看到一段清晰的Python代码——它已经调用了Ultralytics官方API,加载了yolo11m.yaml模型结构,并指定了weights/yolo11m.pt作为预训练权重。

关键参数都在train_params = { ... }字典里,比如:

  • 'data': "auto-parts-det.yaml"→ 数据集配置文件(稍后我们会说明怎么改)
  • 'epochs': 100→ 训练轮数(想快点试效果?改成30就行)
  • 'imgsz': 640→ 输入图像尺寸(保持默认即可)
  • 'batch': 8→ 每次处理8张图(显存小可调成4)

小技巧:Jupyter里运行Python脚本,不用终端。把光标放在train.py文件末尾,按Ctrl+Enter(Windows/Linux)或Cmd+Enter(Mac),就能直接执行——就像点“运行”按钮一样。

2.2datasets/:放数据的地方,必须按规则组织

YOLO11要求数据严格分三类文件夹:

datasets/ └── det_auto_parts_20241020/ ← 你的数据集根目录(名字可自定义) ├── train/ │ ├── images/ ← 放训练图片(jpg/png) │ └── labels/ ← 放对应txt标签(与图片同名) ├── val/ │ ├── images/ │ └── labels/ └── test/ ← 可选,验证用

如果你还没有自己的数据,镜像里其实自带了一个精简示例:datasets/det_num40/(40张带标注的数字图)。你可以直接拿它来测试流程。

2.3weights/:预训练模型就在这儿

打开weights/文件夹,你会看到:

  • yolo11n.pt(轻量版)
  • yolo11m.pt(平衡版,本文默认使用)
  • yolo11l.pt(大模型,需更高显存)
  • yolo11x.pt(超大版)

它们都是官方发布的、已在COCO等大数据集上预训练好的权重。你不需要自己训练从头开始的模型,直接加载它们,再用你的小数据微调(fine-tune),效果更好、速度更快。

2.4ultralytics/cfg/datasets/:数据集配置文件放这里

回到左侧文件树,依次展开:
ultralytics-8.3.9/ultralytics/cfg/datasets/

你会看到一堆.yaml文件,比如coco128.yamlVOC.yaml。其中有一个叫auto-parts-det.yaml的文件——它就是为示例数据集det_auto_parts_20241020/配置的。

双击打开它,内容很简单:

path: ./datasets/det_auto_parts_20241020 train: train/images val: val/images names: 0: part_a 1: part_b 2: part_c

重点来了:只要你把自己的数据集放到datasets/下,并改名为my_dataset/,就只需要修改这一处path:后面的路径,其他都不用动。比如:

path: ./datasets/my_dataset # ← 改成你的文件夹名

然后回到train.py,把'data': "auto-parts-det.yaml"改成'data': "my_dataset.yaml"即可。


3. 用Jupyter Lab跑通第一次训练:3步搞定

现在我们来实操一次完整训练。不写新代码,只做三件事:改路径、点运行、看日志。

3.1 第一步:确认数据路径正确

假设你已把标注好的图片和txt标签放进:
datasets/my_custom_data/
结构如下:

datasets/my_custom_data/ ├── train/ │ ├── images/ ← 100张.jpg │ └── labels/ ← 100个.txt(与图片同名) └── val/ ├── images/ ← 20张.jpg └── labels/ ← 20个.txt

→ 然后打开ultralytics/cfg/datasets/my_custom_data.yaml(如不存在,右键 → New → Text File,命名为my_custom_data.yaml),填入:

path: ./datasets/my_custom_data train: train/images val: val/images names: 0: person 1: car 2: bicycle

类别数量和名称,必须和你的txt标签里class_id严格一致(0,1,2…不能跳号)

3.2 第二步:修改train.py中的配置项

打开train.py,找到这行:

'data': "auto-parts-det.yaml",

把它改成:

'data': "my_custom_data.yaml",

再往下找:

model = YOLO("yolo11m.yaml").load("weights/yolo11m.pt")

如果你想换小模型节省显存,改成:

model = YOLO("yolo11n.yaml").load("weights/yolo11n.pt")

其他参数保持默认即可。想缩短训练时间?把'epochs': 100改成'epochs': 20

3.3 第三步:一键运行,实时看进度

把光标移到train.py最后一行(results = model.train(**train_params)后面),按Ctrl+Enter

你会立刻在下方看到滚动日志:

Transferred 649/649 items from pretrained weights Ultralytics 8.3.9 Python-3.9.16 torch-1.13.1 CUDA:0 (NVIDIA A30, 24062MiB) Starting training for 20 epochs... Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size 1/20 4.21G 2.312 1.705 2.481 120 640: 100%|██████| 12/12 [00:01<00:00, 9.2it/s] Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████| 6/6 [00:00<00:00, 10.8it/s] all 60 240 0.712 0.689 0.745 0.521

这说明:

  • 模型已成功加载预训练权重
  • 数据集路径识别正确(否则会报错“No images found”)
  • 训练正在GPU上进行(看到CUDA:0就对了)
  • 每轮耗时、显存占用、各项指标(P/R/mAP)实时刷新

训练完成后,终端会输出:

20 epochs completed in 0.012 hours. Optimizer stripped from runs/detect/train6/weights/last.pt, 38.2MB Optimizer stripped from runs/detect/train6/weights/best.pt, 38.2MB

→ 这意味着:最佳模型已保存在runs/detect/train6/weights/best.pt,可直接用于检测。


4. 训练结果在哪看?可视化图表+检测样图一目了然

训练结束后,Jupyter不会自动弹窗告诉你“完成了”。你需要手动查看成果。别担心,所有输出都按规范存放,路径非常固定。

4.1 查看训练曲线图:直观判断是否过拟合

在左侧文件树中,展开:
runs/detect/train6/(数字可能不同,找最新生成的文件夹)→results.csv

右键点击results.csv→ “Download”,用Excel或WPS打开。它包含每一epoch的全部指标:train/box_loss,val/box_loss,metrics/mAP50-95(B)等。

更方便的是:Jupyter里已内置绘图脚本。在ultralytics-8.3.9/目录下,有一个现成的plot_results.py(或类似名称),双击运行它,会自动生成results.png图表,清晰展示:

  • 训练损失 vs 验证损失(两条线靠得越近越好)
  • mAP50曲线(持续上升说明学习有效)
  • Precision/Recall变化趋势

4.2 查看检测样图:真实效果一眼可见

继续在runs/detect/train6/下,打开val_batch0_pred.jpgval_batch0_labels.jpg

  • val_batch0_pred.jpg:模型在验证集第一批次图片上的预测结果(带框+标签+置信度)
  • val_batch0_labels.jpg:同一张图的真实标注(绿色框,无置信度)

对比这两张图,你能立刻判断:
🔹 框有没有偏移?
🔹 小目标有没有漏检?
🔹 背景干扰会不会误检?

如果效果不理想,不用重头来——调整train.py里的hsv_h,mosaic,iou等增强或后处理参数,再跑一次即可。


5. 用infer.py做目标检测:上传一张图,3秒出结果

训练完模型,下一步就是让它干活。Jupyter里最简单的用法:用infer.py对单张图、文件夹或摄像头做实时检测。

5.1 修改infer.py,指定你的模型和图片

打开infer.py,找到这段:

model = YOLO(r"runs/detect/train6/weights/best.pt")

确保路径指向你刚训练好的best.pt(如果文件夹名是train7,就改成train7)。

再找这行:

source="datasets/det_num40/images/",

你可以改成:

  • "datasets/my_custom_data/val/images/"→ 检测整个验证集
  • "test_image.jpg"→ 检测当前目录下一张图(先上传到Jupyter!)
  • "0"→ 调用本地摄像头(需浏览器授权)

5.2 上传自己的图片:两步操作

  1. 在左侧文件树空白处右键 → “Upload Files” → 选择你的.jpg.png
  2. 确保图片和infer.py在同一级目录(或写对相对路径)

5.3 运行并保存结果

光标移到infer.py最后,按Ctrl+Enter。几秒后,你会看到:

  • 控制台输出检测数量:12 persons, 3 cars found
  • 自动生成runs/detect/predict/文件夹
  • 里面是带检测框的图片(image0.jpg)、txt坐标文件、甚至裁剪出的目标小图(如果启用了save_crop=True

所有结果都保存在Jupyter文件系统里,右键 → “Download” 即可导出到本地。


6. 常见问题现场解决:这些报错,90%的人都遇到过

在Jupyter里跑YOLO11,新手最常卡在这几个地方。我们把解决方案直接写成“检查清单”,遇到就对照:

报错信息原因一句话解决
No module named 'ultralytics'环境没激活或路径错确认你在ultralytics-8.3.9/目录下运行,不是根目录
No images found in ...数据路径不对或文件夹名拼错检查my_custom_data.yamlpath:是否指向./datasets/xxx,且xxx/下有train/images/
CUDA out of memory显存不足train.py'batch': 8改成42'imgsz': 640改成320
KeyError: 'names'yaml里没写names:或缩进错误用在线YAML校验器(yamllint.com)检查格式,确保names:顶格,下面的0:缩进2空格
Permission denied: 'runs/'权限问题在Jupyter终端(右上角 + → Terminal)输入chmod -R 755 runs/

终极技巧:Jupyter左上角菜单 → Kernel → Restart & Clear All Outputs → 再运行。很多奇怪问题重启内核就消失。


7. 进阶提示:不碰命令行,也能做这些事

你以为Jupyter只能点点点?其实它还能帮你干更多事:

  • 在线编辑yaml:双击任何.yaml文件,Jupyter会以文本模式打开,支持语法高亮和自动缩进
  • 快速查看图片:在代码里写from IPython.display import Image; Image("datasets/my_data/train/images/001.jpg"),图片直接显示在下方
  • 实时打印变量:在train.py里加一行print(model.names),运行后立刻看到类别列表
  • 批量重命名:右键文件夹 → “Rename”,支持正则替换(如把img_*.jpg批量改为000*.jpg
  • 导出为脚本:右键.ipynb→ “Export Notebook As” → “Executable Script”,得到标准.py文件

Jupyter不是玩具,它是专为AI开发者设计的“可视化IDE”——你写的每一行代码,都有即时反馈;你改的每一个配置,都能马上验证效果。


8. 总结:你已经掌握了YOLO11在Jupyter里的完整工作流

回顾一下,今天我们只用浏览器,完成了:

  • 打开Jupyter Lab,认清界面三大区域
  • 定位train.pydatasets/weights/cfg/datasets/四大关键位置
  • 修改一个yaml路径、改一行代码,就让YOLO11训练你的数据
  • 实时看训练日志,3分钟判断模型是否收敛
  • infer.py对任意图片做检测,结果一键下载
  • 遇到报错,5秒内定位原因并修复

你不需要成为Linux高手,也不用背几十个参数。YOLO11镜像的价值,就在于把复杂封装成简单;而Jupyter的价值,是把简单变成所见即所得。

下一步,你可以:
➡ 拿自己的手机拍10张照片,标注后跑一次训练
➡ 把infer.py改成读取摄像头,实现桌面端实时检测
➡ 在train_params里调mosaic=0.8hsv_s=0.9,观察数据增强对效果的影响

真正的掌握,从来不是记住所有参数,而是知道:哪里改、为什么改、改完怎么看效果。而你现在,已经站在了这个起点上。


获取更多AI镜像

想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/8 2:50:09

HG-ha/MTools实战指南:macOS Apple Silicon性能调优

HG-ha/MTools实战指南&#xff1a;macOS Apple Silicon性能调优 1. 开箱即用&#xff1a;第一眼就上手的现代化工具集 你有没有试过下载一个工具&#xff0c;双击安装后直接就能用&#xff0c;不用查文档、不用配环境、更不用折腾依赖&#xff1f;HG-ha/MTools 就是这样一款“…

作者头像 李华
网站建设 2026/2/6 18:18:29

一键部署OFA模型:教育培训场景图文理解评估实战

一键部署OFA模型&#xff1a;教育培训场景图文理解评估实战 用一个命令启动专业级图文语义判断系统&#xff0c;让教育工作者快速验证学生图文理解能力 在教育培训领域&#xff0c;如何科学评估学生对图像与文字之间逻辑关系的理解能力&#xff0c;一直是个难题。传统方式依赖人…

作者头像 李华
网站建设 2026/2/5 18:28:18

GLM-TTS效果展示:听完这组语音你也会想试试

GLM-TTS效果展示&#xff1a;听完这组语音你也会想试试 你有没有试过&#xff0c;只用3秒录音&#xff0c;就能让AI完全模仿你的声音&#xff0c;读出任何你想说的话&#xff1f;不是机械念稿&#xff0c;而是带着语气、停顿、甚至一丝笑意——就像你本人在说话。 这不是科幻…

作者头像 李华
网站建设 2026/2/10 23:19:27

opencode市场营销:用户画像构建AI编程实战

opencode市场营销&#xff1a;用户画像构建AI编程实战 1. 为什么营销人需要会用OpenCode&#xff1f; 你有没有遇到过这些场景&#xff1a; 市场部要给新上线的SaaS产品做用户分层&#xff0c;但数据在数据库里&#xff0c;SQL写得磕磕绊绊&#xff0c;找开发排期要等三天&a…

作者头像 李华
网站建设 2026/2/9 23:00:43

VibeVoice多语言语音合成实战:支持英法日韩等9语种方案

VibeVoice多语言语音合成实战&#xff1a;支持英法日韩等9语种方案 1. 为什么你需要一个多语言TTS工具 你有没有遇到过这些场景&#xff1f; 给海外客户做产品演示&#xff0c;需要快速生成地道的法语或日语配音&#xff0c;但找配音员太慢、外包成本太高&#xff1b;做多语…

作者头像 李华
网站建设 2026/2/11 21:32:46

ChatGLM3-6B入门指南:如何验证transformers版本锁定生效

ChatGLM3-6B入门指南&#xff1a;如何验证transformers版本锁定生效 1. 为什么版本锁定对ChatGLM3-6B如此关键 你可能已经听说过&#xff1a;ChatGLM3-6B是个很“娇气”的模型——它不像某些大模型那样能随便换依赖就跑起来。尤其在升级到 transformers 4.41 后&#xff0c;大…

作者头像 李华