Appearance
常见问题与注意事项
1. 训练前检查清单
2. 常见报错及解决
| 问题 | 原因 | 解决方案 |
|---|---|---|
| CUDA out of memory | 显存不足 | 减小 batch 或 imgsz,或设置 batch=-1 自动适配 |
| No labels found | 标签路径不对 | 检查 labels 目录是否与 images 镜像对应 |
| Dataset not found | data.yaml 路径错误 | 使用绝对路径,检查 path / train / val 是否正确 |
| RuntimeError (Windows) | 多进程问题 | 在脚本顶部加 if name == "main": |
| 训练 loss 不下降 | 学习率不合适或数据问题 | 检查标注质量、调整 lr0、确认类别 ID 正确 |
| 验证 mAP 很低 | 数据量不足或过拟合 | 增加数据量、使用数据增强、减小模型尺寸 |
| class id X out of range | 标签中的类别 ID 超过 nc | 确保标签 ID 范围为 0 到 nc-1 |
3. 性能优化建议
- 数据质量 > 数据数量:标注准确比数据多更重要
- 数据增强:小数据集时尝试更多增强策略(Mosaic、MixUp、翻转等)
- 迁移学习:永远推荐从预训练模型开始(
.pt文件),除非领域差异极大 - 多尺度训练:设置
multi_scale=0.5让模型适应不同大小的目标 - 余弦学习率:长训练时设置
cos_lr=True,后期收敛更平稳 - 混合精度:
amp=True(默认开启),减少显存占用加速训练 - 图片尺寸:640 是默认值,小目标多时可以尝试 1280
4. 数据集质量提升
- 使用 Roboflow(在线标注平台) 的数据增强功能增加样本多样性
- 确保类别均衡:标注完成后用 YOLO 的可视化功能抽检标注质量
- 标注质量:标注完成后用 YOLO 的可视化功能抽检标注质量**python
from ultralytics import YOLO model = YOLO("yolo26n.pt") model.train(data="data.yaml", epochs=1, plots=True) # 查看 runs/train/exp/ 下的 labels.jpg 和 train_batch*.jpg