Kaggle部署YOLOv7保姆级教程:从数据集上传到结果下载,一个Notebook搞定

张开发
2026/4/8 4:49:05 15 分钟阅读

分享文章

Kaggle部署YOLOv7保姆级教程:从数据集上传到结果下载,一个Notebook搞定
Kaggle实战YOLOv7全流程指南从数据上传到模型部署的避坑手册第一次在Kaggle上跑YOLOv7时我盯着满屏的英文界面和陌生的目录结构发呆了半小时——明明本地运行顺畅的代码怎么换个平台就处处碰壁直到成功下载到训练好的模型文件才意识到Kaggle这个炼丹炉的潜力远超想象。本文将带你用Notebook打通数据、训练、部署的全链路避开我踩过的所有坑。1. 环境准备像搭积木一样配置Kaggle工作区1.1 账号设置与资源申请手机验证点击右上角头像 → Settings → Phone Verification国内手机号前需加86GPU加速新建Notebook后右侧边栏Session options → Accelerator选择GPUP100免费额度每周30小时临时存储注意/kaggle/working目录下的文件在会话结束后会自动清除重要数据及时下载# 查看GPU信息 !nvidia-smi提示若GPU选项不可见先完成手机验证。遇到人机验证加载问题时尝试切换浏览器或清除缓存。1.2 目录结构映射指南本地项目与Kaggle的路径对应关系本地路径Kaggle路径用途./data/images/kaggle/input/dataset_name/images只读数据集./weights/kaggle/working/可写模型输出./cache/kaggle/working/cache/训练缓存文件# 创建必要的目录结构 !mkdir -p /kaggle/working/cache !ls /kaggle/input # 查看已挂载的数据集2. 数据工程让YOLOv7识别你的专属数据集2.1 数据集打包与上传规范压缩包格式建议使用.zip1000个文件以上必须打包命名规则至少6个字符避免特殊符号文件结构示例my_dataset/ ├── images/ │ ├── train/ │ └── val/ └── labels/ ├── train/ └── val/2.2 YAML配置文件改造修改data.yaml的关键参数train: /kaggle/input/my_dataset/images/train val: /kaggle/input/my_dataset/images/val nc: 3 # 类别数 names: [cat, dog, person] # 类别标签注意路径必须使用绝对路径Kaggle不支持相对路径引用3. 模型适配让本地代码在Kaggle上飞起来3.1 路径修改红宝书需要修改的典型文件及位置模型配置文件# cfg/training/yolov7.yaml nc: 3 # 与data.yaml保持一致训练脚本# train.py参数调整示例 parser.add_argument(--weights, default/kaggle/input/yolov7/yolov7.pt) parser.add_argument(--data, default/kaggle/input/my_dataset/data.yaml)缓存处理关键修改# utils/datasets.py约390行 base_cache_path Path(/kaggle/working) cache_path base_cache_path / (p_path.name.split(.)[0].cache)3.2 依赖管理技巧三种依赖安装方式对比方法命令示例适用场景pip直接安装!pip install wandb简单依赖requirements文件!pip install -r /kaggle/input/yolov7/requirements.txt复杂环境源码安装!cd /kaggle/input/yolov7 python setup.py install自定义包# 典型YOLOv7依赖安装 !pip install torch1.10.0cu113 torchvision0.11.1cu113 -f https://download.pytorch.org/whl/torch_stable.html !pip install wandb albumentations4. 训练监控与结果导出4.1 可视化工具集成Weights Biases配置流程注册wandb账号获取API Key在Kaggle Notebook添加Secretfrom kaggle_secrets import UserSecretsClient user_secrets UserSecretsClient() wandb_api user_secrets.get_secret(wandb_key) wandb.login(keywandb_api)训练命令添加wandb参数!python train.py --project kaggle_yolov7 --name exp1 --entity your_wandb_id4.2 模型打包与下载自动化导出脚本import zipfile from IPython.display import FileLink def zip_directory(path, output_name): with zipfile.ZipFile(output_name, w, zipfile.ZIP_DEFLATED) as zipf: for root, _, files in os.walk(path): for file in files: file_path os.path.join(root, file) arcname os.path.relpath(file_path, startpath) zipf.write(file_path, arcname) return FileLink(output_name) # 打包整个working目录 zip_directory(/kaggle/working, output.zip)训练过程中突然断连怎么办试试这个恢复技巧# 在train.py启动命令中添加--resume参数 !python train.py --resume /kaggle/working/exp/weights/last.pt

更多文章