(深度学习/计算机视觉)手把手教你从零部署YOLOv8目标检测算法-----模型训练(5/5)

张开发
2026/5/5 20:47:38 15 分钟阅读

分享文章

(深度学习/计算机视觉)手把手教你从零部署YOLOv8目标检测算法-----模型训练(5/5)
⚡⚡⚡ 欢迎预览批评指正⚡⚡⚡文章目录一、训练前的数据准备1.1 数据集目录结构1.2 数据划分1.3 数据放置位置1.4 数据集描述文件YAML二、模型训练2.1 命令行方式训练2.2 Python API 方式训练2.3 自定义配置文件三、训练结果3.1 结果保存位置3.2 结果内容3.3 使用训练好的模型进行预测四、使用中的注意事项4.1 Windows 系统 workers 参数4.2 虚拟内存设置4.3 数据集路径问题4.4 缓存文件问题五、本集核心要点回顾一、训练前的数据准备1.1 数据集目录结构需要将数据整理为以下结构dataset/ ├── images/ │ ├── train/ # 训练集图片 │ └── val/ # 验证集图片 ├── labels/ │ ├── train/ # 训练集标签 │ └── val/ # 验证集标签 └── classes.txt # 类别文件1.2 数据划分从已标注的数据中抽取 300~400 张作为训练集剩余数据作为验证集重要标签文件的名称必须与训练集图片名称完全对应1.3 数据放置位置与 YOLOv5 不同YOLOv8 的数据集必须放在datasets目录下。ultralytics/ └── datasets/ └── BVN/ # 自定义数据集名称 ├── images/ │ ├── train/ │ └── val/ └── labels/ ├── train/ └── val/1.4 数据集描述文件YAMLpath:datasets/BVN# 数据集根路径从 datasets 目录开始写train:images/train# 训练集图片路径val:images/val# 验证集图片路径nc:2# 类别数量names:[戴图,名人]# 类别名称列表关键点path从datasets目录开始写起不是从项目根目录标签文件名称必须与图片名称完全一致二、模型训练2.1 命令行方式训练yolo detect trainmodelyolov8n.ptdataultralytics.yamlepochs100workers0batch16参数说明参数说明示例值detect train任务类型训练detect trainmodel预训练模型yolov8n.ptdata数据集描述文件ultralytics.yamlepochs训练轮数100workers数据加载线程数0Windows 必须设为 0batch批次大小162.2 Python API 方式训练fromultralyticsimportYOLO# 加载模型modelYOLO(yolov8n.pt)# 开始训练model.train(dataultralytics.yaml,epochs100,workers0,batch16)注意事项Windows 系统workers必须设为 0否则会出现多进程问题确保 Python 解释器选择正确之前创建的 yolov8 环境2.3 自定义配置文件YOLOv8 支持使用配置文件覆盖默认参数# 复制默认配置文件yolo copy cfg# 修改配置文件中的参数# 然后使用配置文件训练yolo cfg.yaml配置文件位置ultralytics/cfg/default.yaml三、训练结果3.1 结果保存位置训练结果保存在runs/detect/train/目录下。3.2 结果内容文件/文件夹说明results.png训练曲线Loss、mAP 等指标confusion_matrix.png混淆矩阵weights/best.pt最佳模型验证集上表现最好的weights/last.pt最后一轮模型可用于继续训练args.yaml训练参数记录3.3 使用训练好的模型进行预测yolo detect predictmodelruns/detect/train/weights/best.ptsourcevideo.mp4showTrue四、使用中的注意事项4.1 Windows 系统 workers 参数必须设置workers0否则会出现多进程错误。4.2 虚拟内存设置如果训练过程中出现虚拟内存不足的错误右键此电脑 → 属性 → 高级系统设置性能 → 设置 → 高级 → 虚拟内存 → 更改取消自动管理选择安装目录所在的盘建议 C 盘设置为自定义大小50000~100000 MB点击设置 → 确定 → 重启电脑4.3 数据集路径问题重要数据集描述文件YAML中的path必须从datasets目录开始写起。# ✅ 正确写法path:datasets/BVN# ❌ 错误写法path:/full/path/to/datasets/BVN4.4 缓存文件问题YOLOv8 在运行时会在~/.cache/ultralytics/目录下生成缓存文件cache.yaml其中记录了数据集路径等信息。常见问题如果切换了工作目录或数据集路径缓存文件中的旧路径会导致找不到数据解决方案删除缓存文件重新运行训练命令# 删除缓存文件rm~/.cache/ultralytics/cache.yaml或者修改源码在ultralytics/data/utils.py中找到init_dataset_cache_dir方法注释掉相关代码强制每次重新生成缓存。五、本集核心要点回顾数据准备整理为 images/labels 结构划分 train/val放在 datasets 目录下YAML 描述文件path 从 datasets 目录开始写classes 写类别名称训练命令yolo detect train modelyolov8n.pt dataxxx.yaml epochs100 workers0 batch16Windows 必须 workers0避免多进程问题训练结果best.pt最佳模型、last.pt最后一轮、results.png训练曲线缓存问题切换目录时删除 cache.yaml 避免路径错误感谢阅读下期更精彩

更多文章