Tips for Best Training Results

深度学习经验总结:

大多数情况下,只要数据集足够大且标记良好,无需更改模型或训练设置即可获得良好的结果。 如果一开始你没有得到好的结果,针对YOLOv5,你可以采取一些步骤来改进。

1. 数据集

  • 图像数量:推荐每种类别至少大于1500张图片;
  • 图像多样性:必须代表已部署的环境。 推荐来自一天中不同时间、不同季节、不同天气、不同光照、不同角度、不同来源(在线抓取、本地收集、不同相机)等的图像;
  • 标签一致性: 必须标记所有图像中所有类的所有实例, 部分标签将不起作用;
  • 标签准确性: 标签必须紧密地包围每个对象。 对象与其边界框之间不应存在空间。 任何对象都不应缺少标签。
  • 背景图片:背景图像是没有对象的图像,这些图像被添加到数据集中以减少误报 (FP)。 推荐大约 0-10% 的背景图片来帮助减少误报(COCO 有 1000 张背景图片供参考,占总数的 1%)。 背景图像不需要标签。

2. 模型选取

YOLOv5x 和 YOLOv5x6 等较大的模型几乎在所有情况下都会产生更好的结果,但参数更多,需要更多的 CUDA 内存来训练,并且运行速度较慢。 对于移动部署,我们推荐 YOLOv5s/m,对于云部署,我们推荐 YOLOv5l/x。
YOLOv5各模型

  • 预训练模型:(推荐中小型数据集训练)
python train.py --data custom.yaml --weights yolov5s.pt
                                             yolov5m.pt
                                             yolov5l.pt
                                             yolov5x.pt
                                             custom_pretrained.pt

  • 白手起家:(推荐大型数据集训练)
python train.py --data custom.yaml --weights '' --cfg yolov5s.yaml
                                                      yolov5m.yaml
                                                      yolov5l.yaml
                                                      yolov5x.yaml

3. 训练技巧

  • Epochs:从 300 个 epoch 开始。 如果这过早过拟合,那么您可以减少 epochs。 如果在 300 个 epoch 后没有发生过拟合,则训练更长时间,即 600、1200 个等 epoch;
  • Image size:COCO以 --img 640 的原始分辨率进行训练,但由于数据集中有大量小对象,它可以从更高分辨率的训练中受益,例如 --img 1280。如果有很多小对象,那么自定义数据集将受益于以原生或更高分辨率进行训练。 最佳推理结果是在与运行训练相同的 --img 处获得的,即如果您在 --img 1280 处训练,您还应该在 --img 1280 处进行测试和检测;
  • Batch size:使用您的硬件允许的最大 --batch-size。 小批量会产生较差的批量规范统计数据,应避免使用;
  • Hyperparameters:增强超参数将减少延迟和过拟合,允许更长的训练和更高的mAP。(可在首次训练使用scrath参数,再利用预训练权重进行finetune)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值