Kaggle 免费 GPU 训练 YOLO 模型入门教程 记录一下
本文详细介绍了在Kaggle平台上使用YOLOv8模型进行目标检测训练的完整流程。重点解决了数据集路径配置问题,强调data.yaml文件中必须使用相对路径(如./images/train)。教程包含:1)准备YOLO格式数据集;2)上传至Kaggle;3)创建Notebook并启用GPU;4)安装ultralytics库;5)模型训练参数设置;6)结果保存与下载。特别提醒注意路径配置和GPU使用
程,并重点修正此前容易出错的数据集路径配置问题。
一、前置准备:账号与数据集
在开始前,需完成账号注册和数据集格式确认,这是后续训练的基础。
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 数据集仓库:
- 登录 Kaggle 后,点击右上角头像 → 选择 Your Datasets。
- 点击页面右上角 New Dataset → 选择 Upload 标签。
- 点击 Choose Files,选择本地的
dataset.zip压缩包(可拖拽上传)。 - 填写数据集信息:
- Dataset name:自定义名称(如
yolo-dataset-2class,后续需用到)。 - Visibility:选择 Private(私有,仅自己可见,保护数据)。
- Dataset name:自定义名称(如
- 无需填写其他信息,直接点击页面底部 Create,等待上传完成(视压缩包大小,可能需要 1-5 分钟)。
- 上传完成后,数据集状态会从 Draft 变为 Published(需等待 Kaggle 处理,约 1 分钟),此时才算真正可用。
三、步骤 2:创建 Kaggle Notebook 并启用 GPU
Kaggle Notebook 是训练模型的核心环境,需先配置好 GPU 和基础设置:
- 回到 Kaggle 首页,点击顶部导航栏 Code → 选择 New Notebook。
- 新建 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 ./datasetimages 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 额度剩余情况。
更多推荐

所有评论(0)