从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.yaml、VOC.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.jpg和val_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 上传自己的图片:两步操作
- 在左侧文件树空白处右键 → “Upload Files” → 选择你的
.jpg或.png - 确保图片和
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.yaml中path:是否指向./datasets/xxx,且xxx/下有train/images/ |
CUDA out of memory | 显存不足 | 把train.py中'batch': 8改成4或2,'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.py、datasets/、weights/、cfg/datasets/四大关键位置 - 修改一个yaml路径、改一行代码,就让YOLO11训练你的数据
- 实时看训练日志,3分钟判断模型是否收敛
- 用
infer.py对任意图片做检测,结果一键下载 - 遇到报错,5秒内定位原因并修复
你不需要成为Linux高手,也不用背几十个参数。YOLO11镜像的价值,就在于把复杂封装成简单;而Jupyter的价值,是把简单变成所见即所得。
下一步,你可以:
➡ 拿自己的手机拍10张照片,标注后跑一次训练
➡ 把infer.py改成读取摄像头,实现桌面端实时检测
➡ 在train_params里调mosaic=0.8或hsv_s=0.9,观察数据增强对效果的影响
真正的掌握,从来不是记住所有参数,而是知道:哪里改、为什么改、改完怎么看效果。而你现在,已经站在了这个起点上。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。