程,并重点修正此前容易出错的数据集路径配置问题。

一、前置准备:账号与数据集

在开始前,需完成账号注册和数据集格式确认,这是后续训练的基础。

1. 注册 Kaggle 账号

  • 访问 Kaggle 官网,推荐使用谷歌 / Outlook 邮箱注册(国内邮箱可能收不到验证邮件)。
  • 注册后无需额外认证,直接进入主界面即可使用免费 GPU 资源。

2. 准备 YOLO 格式数据集

YOLO 模型对数据集结构有固定要求,需提前按以下格式整理,避免后续路径错误:

dataset/  # 数据集根目录(压缩前的文件夹)
├─ images/  # 图片文件夹
│  ├─ train/  # 训练集图片(如 001.jpg、002.jpg)
│  └─ val/    # 验证集图片(建议占总数据的 20%)
├─ labels/  # 标签文件夹(与图片一一对应)
│  ├─ train/  # 训练集标签(如 001.txt、002.txt)
│  └─ val/    # 验证集标签
└─ data.yaml  # 数据集配置文件(核心!路径需严格对应)
关键文件:data.yaml 配置(修正路径问题)

此前容易出现路径错误(如 ../train/images),正确配置需遵循 “路径相对于 data.yaml 所在位置” 的原则。以 2 类目标(class1、class2)为例,正确内容如下:

# data.yaml 正确配置
train: ./images/train  # 相对路径:data.yaml → images → train(核心修正点)
val: ./images/val      # 相对路径:data.yaml → images → val(核心修正点)
nc: 2                  # 目标类别数量(根据你的数据修改)
names: ['class1', 'class2']  # 类别名称(与标签中的数字对应,如 0→class1)
  • 错误原因:原 ../train/images 表示 “上一级目录的 train/images”,与上述 dataset 文件夹结构不匹配,会导致模型找不到数据。
  • 正确逻辑:./ 代表 data.yaml 所在的当前目录(即 dataset 根目录),直接指向同级的 images/train 和 images/val

二、步骤 1:上传数据集到 Kaggle

将本地整理好的 dataset 文件夹压缩为 dataset.zip(减少上传时间),再上传到 Kaggle 数据集仓库:

  1. 登录 Kaggle 后,点击右上角头像 → 选择 Your Datasets
  2. 点击页面右上角 New Dataset → 选择 Upload 标签。
  3. 点击 Choose Files,选择本地的 dataset.zip 压缩包(可拖拽上传)。
  4. 填写数据集信息:
    • Dataset name:自定义名称(如 yolo-dataset-2class,后续需用到)。
    • Visibility:选择 Private(私有,仅自己可见,保护数据)。
  5. 无需填写其他信息,直接点击页面底部 Create,等待上传完成(视压缩包大小,可能需要 1-5 分钟)。
  6. 上传完成后,数据集状态会从 Draft 变为 Published(需等待 Kaggle 处理,约 1 分钟),此时才算真正可用。

三、步骤 2:创建 Kaggle Notebook 并启用 GPU

Kaggle Notebook 是训练模型的核心环境,需先配置好 GPU 和基础设置:

  1. 回到 Kaggle 首页,点击顶部导航栏 Code → 选择 New Notebook
  2. 新建 Notebook 后,先启用 GPU(默认是 CPU,训练极慢):
    • 点击 Notebook 右上角的 Accelerator 下拉框 → 选择 GPU P100(免费额度内,每周 30 小时)。
    • 启用后,右上角会显示 GPU P100 标识,代表配置成功。
    • 新版本

五、步骤 4:解压数据集并检查结构

挂载的数据集是压缩包形式,需先解压到工作目录,再确认结构是否与预期一致:

六、步骤 5:安装 YOLO 依赖库(Ultralytics)

YOLOv8 官方推荐使用 ultralytics 库,需在 Notebook 中安装:

七、步骤 6:训练 YOLOv8 模型

以轻量级的 yolov8n.pt(nano 版本,适合新手测试)为例,配置训练参数并启动训练:

八、步骤 7:保存并下载训练结果

训练完成后,模型权重、日志、可视化图表会保存在指定路径,需压缩后下载到本地:

九、常见问题解决

十、后续操作建议

  • (可选)调整 Notebook 名称:点击顶部的 Untitled Notebook,修改为易识别的名称(如 YOLOv8-Training)。这里新版本有点变化,网络需要打开 不然使用pip install会失败:
  • 四、步骤 3:挂载自己的数据集

    挂载是将 Kaggle 数据集仓库中的数据,关联到当前 Notebook 的工作目录(/kaggle/working/),方便后续调用:

  • 在 Notebook 左侧面板,点击 Data(图标是文件夹 + 数据库,若隐藏可点击左上角「≡」展开)。
  • 在 Data 面板顶部的搜索框,输入你之前上传的数据集名称(如 yolo-dataset-2class)。
  • 搜索结果中找到你的数据集后,点击其卡片右下角的 Add 按钮(可能显示为「+ Add」)。
  • 挂载成功后,会弹出提示 “Dataset added to notebook”,且数据集会被固定挂载到路径:/kaggle/input/你的数据集名称/(例如 /kaggle/input/yolo-dataset-2class/)。
  • 验证挂载:在 Notebook 中新建一个代码单元格(点击「+ Code」),输入以下命令并按 Shift+Enter 运行:
    # 查看挂载路径下的文件(替换为你的数据集名称)
    !ls /kaggle/input/yolo-dataset-2class/
    
    若输出 dataset.zip(即你上传的压缩包),说明挂载成功。
  • 在 Notebook 中新建代码单元格,输入以下命令解压(替换路径中的数据集名称):
    # 解压 dataset.zip 到当前工作目录(/kaggle/working/)下的 dataset 文件夹
    !unzip /kaggle/input/yolo-dataset-2class/dataset.zip -d ./dataset
    
    • 运行后会显示解压进度,完成后提示「inflating: ...」。
  • 检查解压后的结构是否正确:
    # 查看解压后的 dataset 文件夹内容
    !ls ./dataset
    
    若输出 images labels data.yaml,说明结构与预期一致,可进入下一步;若缺少文件,需重新检查本地数据集压缩前的结构。
  • 新建代码单元格,输入以下命令并运行:
    # 安装 ultralytics 库(包含 YOLOv8 模型)
    !pip install ultralytics -q
    
    • -q 表示静默安装,减少输出日志;安装完成后无报错即可。
  • 新建代码单元格,输入以下训练代码(关键参数已标注说明):
    from ultralytics import YOLO
    
    # 1. 加载预训练模型(yolov8n.pt 是最小模型,训练快;可选 yolov8s.pt、yolov8m.pt 等)
    model = YOLO('yolov8n.pt')
    
    # 2. 启动训练(参数根据你的需求调整)
    results = model.train(
        data='./dataset/data.yaml',  # 数据集配置文件路径(必须正确,否则找不到数据)
        epochs=10,                   # 训练轮次(新手先设 10 轮测试,后续可增到 50-100)
        imgsz=640,                   # 输入图片尺寸(YOLO 常用 640,若 GPU 内存小可设 480)
        batch=16,                    # 批次大小(P100 支持 16-32,内存不足可减为 8 或 4)
        device=0,                    # 使用第 0 块 GPU(Kaggle 免费版仅单 GPU)
        project='yolo_training',     # 训练结果保存的项目名(可选,默认是 runs/detect)
        name='train_v1'              # 本次训练的名称(可选,方便区分多次训练)
    )
    
  • 按 Shift+Enter 运行代码,训练开始后会实时输出日志:
    • 包含每轮的损失值(loss)、精度(precision)、召回率(recall)、mAP 等指标。
    • 训练过程中若出现「No labels found」,需检查 data.yaml 路径是否正确,或 labels 文件夹是否有 .txt 文件。
  • 查看训练结果路径:
    • 若使用默认参数,结果保存在 /kaggle/working/runs/detect/train/
    • 若自定义了 project 和 name,则保存在 /kaggle/working/yolo_training/train_v1/
    • 核心文件:
      • weights/best.pt:训练过程中性能最好的模型权重(重点下载)。
      • weights/last.pt:最后一轮的模型权重。
      • results.csv:所有训练指标的详细数据(可用于后续分析)。
  • 压缩训练结果(方便下载):
    # 压缩默认路径的训练结果(若自定义路径需修改)
    !zip -r yolo_train_results.zip /kaggle/working/runs/detect/train/
    
  • 下载结果:
    • 在 Notebook 左侧面板,点击 Files(图标是文件夹)。
    • 找到 yolo_train_results.zip 文件,点击其右侧的「↓」下载按钮,保存到本地。
  • GPU 突然断开连接

    • Kaggle 免费 GPU 有 90 分钟无操作超时机制,训练时保持页面打开,或在代码中加入防休眠逻辑(如每 5 分钟打印一次信息)。
  • “Out of memory”(GPU 内存不足)

    • 减小 batch 大小(如从 16 减为 8)。
    • 降低 imgsz(如从 640 减为 480)。
    • 换用更小的模型(如 yolov8n.pt 替代 yolov8s.pt)。
  • 数据集路径错误(找不到图片或标签)

    • 重新检查 data.yaml 中的 train 和 val 路径,确保是 ./images/train 和 ./images/val
    • 用 !ls ./dataset/images/train 命令,确认 images/train 下有图片文件。
  • 本地测试:下载 best.pt 后,用 ultralytics 库加载模型,对本地图片或视频进行预测。
  • 优化训练:若精度不足,可增加 epochs(如 50 轮)、换用更大模型(如 yolov8s.pt),或优化数据集(增加样本、标注修正)。
  • 管理免费额度:在 Kaggle 首页点击右上角头像 → Settings → Usage,可查看每周 GPU 额度剩余情况。
    Logo

    有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

    更多推荐