手把手教你用YOLO11镜像完成第一个AI项目
你是不是一直想入门AI视觉项目,但被复杂的环境配置、依赖安装和代码调试劝退?别担心,今天我们就用一个预置好的YOLO11 镜像,带你从零开始跑通你的第一个计算机视觉任务——图像分类训练。整个过程不需要你手动装任何库,也不用折腾CUDA或PyTorch版本,一键部署,直接开跑。
本文适合:
- 完全没接触过YOLO的新手
- 想快速验证想法的开发者
- 希望跳过环境配置直接上手训练的学习者
学完你能掌握:
- 如何使用YOLO11镜像快速启动开发环境
- 怎么准备自己的数据集并编写配置文件
- 如何运行一个完整的训练脚本
- 看懂训练日志和结果输出
准备好,我们这就开始!
1. 启动并进入YOLO11开发环境
首先,在平台中选择YOLO11 镜像进行实例创建。这个镜像已经内置了以下内容:
- Ultralytics 最新版本(8.3.9)
- PyTorch + CUDA 支持
- Jupyter Notebook 和 SSH 访问方式
- 预装 OpenCV、NumPy、Pillow 等常用视觉库
创建完成后,你可以通过两种方式连接环境:
1.1 使用 Jupyter Notebook(推荐新手)
点击“打开Jupyter”按钮后,你会看到类似下图的界面:
这是你的主工作区。所有代码都可以在这里以 Notebook 形式交互执行,非常适合边调试边学习。
1.2 使用 SSH 连接(适合进阶用户)
如果你更习惯命令行操作,可以通过 SSH 工具(如 Terminal 或 Xshell)登录到服务器:
ssh username@your_ip_address -p port_number登录成功后,你就可以自由使用vim、ls、python等命令了。
无论哪种方式,接下来我们都将进入项目目录开始训练。
2. 进入项目目录并查看结构
在终端或 Jupyter 的 Terminal 中输入:
cd ultralytics-8.3.9/这会进入镜像自带的 Ultralytics 项目根目录。你可以用ls查看当前文件夹内容:
cfg/ data/ engine/ models/ utils/ assets/ datasets/ hub/ nn/ yolo/ train.py val.py predict.py export.py其中:
train.py是训练入口脚本data/存放数据集配置文件models/包含 YOLO11 的模型定义- 我们主要关注
train.py和自定义的数据配置
3. 准备你的数据集
要让模型学会识别不同的类别,我们需要准备一个结构清晰的数据集。假设我们要做一个五分类任务:识别数字 1 到 5 的手写图片。
3.1 数据集目录结构要求
YOLO11 要求图像分类数据按如下格式组织:
classs/ ├── train/ │ ├── 1/ # 类别1的训练图 │ │ ├── img1.jpg │ │ └── ... │ ├── 2/ │ │ └── ... │ └── ... # 其他类别 └── val/ ├── 1/ # 类别1的验证图 │ └── ... └── ...请确保:
train和val文件夹都存在- 每个类别的子文件夹名称与你在 YAML 中定义的
names一致 - 图片尽量统一尺寸(建议 224x224)
你可以通过 SFTP 工具上传本地数据,或者直接在服务器上下载公开数据集。
4. 编写数据配置文件 shuju.yaml
在项目根目录新建一个文件:shuju.yaml,内容如下:
train: ./classs/train val: ./classs/val nc: 5 names: ['1', '2', '3', '4', '5']解释一下每个字段:
train: 训练集路径(相对路径即可)val: 验证集路径nc: number of classes,类别数量names: 每个类别的标签名,顺序必须和文件夹对应
提示:YAML 对缩进敏感,请使用空格而不是 Tab 键。
保存后,可以用以下命令检查是否能正确读取:
import yaml with open("shuju.yaml", "r") as f: data = yaml.safe_load(f) print(data)如果输出包含路径和类别信息,说明配置成功。
5. 创建训练脚本 train.py
在项目根目录创建train.py文件,写入以下代码:
from ultralytics import YOLO import yaml with open("shuju.yaml", "r") as f: data = yaml.safe_load(f) print("加载的数据配置:", data) if __name__ == '__main__': # 加载预训练模型(这里使用轻量级的 yolo11n-cls) model = YOLO('yolo11n-cls.pt') # 开始训练 results = model.train( data='shuju.yaml', # 数据配置文件 imgsz=224, # 输入图像大小 epochs=100, # 训练轮数 batch=16, # 每批处理图片数 device=0 if torch.cuda.is_available() else 'cpu', # 自动检测GPU workers=4 # 数据加载线程数 ) print("训练完成!")关键参数说明:
| 参数 | 作用 | 建议值 |
|---|---|---|
imgsz | 图像缩放尺寸 | 分类任务常用 224 |
epochs | 训练轮次 | 从 50~100 开始尝试 |
batch | 批次大小 | 根据显存调整(16 是平衡点) |
device | 使用设备 | 有 GPU 写0,否则'cpu' |
workers | 数据读取线程 | 一般设为 4~8 |
注意:如果你没有上传
yolo11n-cls.pt,可以先运行一次自动下载。后续可离线使用。
6. 下载并放置预训练模型权重
虽然镜像里可能已有部分模型,但我们仍需确认yolo11n-cls.pt在当前目录。
前往官方文档获取最新模型地址:
👉 https://docs.ultralytics.com/zh/models/yolo11/
找到分类模型(Classification Models)下的yolo11n-cls.pt,右键复制链接,然后在终端用wget下载:
wget https://github.com/ultralytics/assets/releases/download/v0.0.1/yolo11n-cls.pt或者通过网页端上传.pt文件到ultralytics-8.3.9/目录下。
7. 正式开始训练!
一切就绪,现在运行训练脚本:
python train.py你会看到类似下面的日志输出:
Epoch GPU Mem Train Loss Val Loss Accuracy Checkpoint CE_top1 CE_top5 (best) --------------------------------------------------------------- 1/100 1.2GB 1.834 1.678 0.456 x 2/100 1.2GB 1.512 1.301 0.623 x 3/100 1.2GB 1.205 1.012 0.731 ✓ ... 100/100 1.2GB 0.123 0.098 0.967 ✓关键指标解读:
- Train Loss / Val Loss:越低越好,下降趋势正常
- Accuracy (CE_top1):Top-1 准确率,最终达到 90%+ 表示效果不错
- Checkpoint (✓):标记了最佳模型保存时刻
训练过程中,系统会在runs/classify/train/自动生成可视化图表,包括:
- 损失曲线(loss curves)
- 精度变化图(accuracy trends)
- 混淆矩阵(confusion matrix)
这些图表可以帮助你判断模型是否过拟合、收敛情况如何。
8. 训练结束后做什么?
当Epoch 100/100完成后,训练结束。此时你可以:
8.1 查看最佳模型保存位置
默认情况下,最佳权重保存在:
runs/classify/train/weights/best.pt你可以把这个文件下载下来,用于之后的推理任务。
8.2 测试模型效果
新建predict.py文件,测试单张图片:
from ultralytics import YOLO model = YOLO('runs/classify/train/weights/best.pt') result = model.predict('test_img.jpg') # 输出预测结果 top1_name = result[0].probs.top1class top1_conf = result[0].probs.top1conf print(f"预测类别: {top1_name}, 置信度: {top1_conf:.3f}")8.3 导出为 ONNX 或 TorchScript 格式
如果你想把模型集成到其他系统中,可以导出为通用格式:
model.export(format='onnx') # 导出为 ONNX model.export(format='torchscript') # 导出为 TorchScript方便部署到移动端或嵌入式设备。
9. 常见问题与解决方法
❌ 问题1:ModuleNotFoundError: No module named 'ultralytics'
原因:可能误删了项目目录或未正确激活环境。
解决:重新进入ultralytics-8.3.9/目录,不要修改里面的setup.py。
❌ 问题2:CUDA out of memory
原因:显存不足导致崩溃。
解决:降低batch大小,比如改为batch=8或batch=4。
❌ 问题3:训练精度一直很低(<50%)
可能原因:
- 数据质量差(模糊、噪声多)
- 类别不平衡(某些类样本太少)
- 路径配置错误(实际没读到图)
建议:
- 检查
shuju.yaml中的路径是否真实存在 - 用
os.listdir()打印几个目录看看有没有图 - 每个类别至少准备 50~100 张清晰图片
✅ 小技巧:如何加快训练速度?
- 使用
imgsz=128先做一轮快速实验 - 设置
epochs=10快速验证流程通不通 - 成功后再切换回
224和100 epochs正式训练
10. 总结:你刚刚完成了什么?
恭喜你!你现在已经是“跑通过 YOLO11 分类训练”的人了。回顾一下我们做了什么:
- 一键启动YOLO11 镜像,免去繁琐环境配置
- 组织数据集,建立标准分类目录结构
- 编写 YAML 配置,告诉模型怎么找数据
- 创建训练脚本,设置关键参数开始训练
- 观察训练过程,理解 loss 和 accuracy 的意义
- 获得最佳模型,可用于后续预测和部署
这不是简单的“复制粘贴”,而是真正理解了 AI 项目的基本闭环:数据 → 配置 → 模型 → 训练 → 结果分析。
下一步你可以尝试:
- 换成自己的真实数据集(比如猫狗分类、商品识别)
- 尝试更大的模型(如
yolo11s-cls.pt提升精度) - 把训练好的模型封装成 API 接口
- 结合前端做一个图像上传识别的小应用
记住,每一个 AI 工程师都是从“第一次成功训练”开始的。你已经迈出了最关键的一步。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。