yolov5 训练结果不稳定结果无法复现

首先说明一下环境:

  1. PyTorch 1.9 +CUDA 11
  2. GPU NVIDIA GeForce RTX 3090 数量: 1 显存: 24 GB
  3. CPU Intel Xeon Gold 6130H 内核: 8核
  4. 实例内存: 63G
  5. 硬盘 20.0G SSD
  6. 训练集2800张
  7. 验证集1200张
  8. 测试集600张

最近用yolov5跑项目,但是发现多次实验结果无法复现(同一个机器,同一份代码,同样超参数,但是验证集结果不同),在测试集上跑的结果准确率可以偏差20%,其中认为可能的问题是出在以下几点:

1.Pytorch 的随机种子 设置问题,但是Yolov5 的模型初始化时已经固定了随机种子。

2.因为是在云GPU上进行训练模型,所以可能会存在硬件不同的情况,硬件不同那随机的参数肯定也不同同。

3.训练集验证集与测试集之间关联性低

4.模型本身泛化能力不好

5.训练存在欠拟合

经过一个多礼拜的调试和实验,认为主要问题是出在模型本身参数太少了导致影响了多次训练后的模型推理精度。实验设计是yolov5n、yolov5s、yolov5m等多次训练查看方差(我测试了上百次T T),模型参数越大,结果越稳定,其中yolov5m测试10多次的精度差距在3%内。

  • 5
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 23
    评论
yolov8训练结果参数的详解如下: - model:传入的model.yaml文件或者model.pt文件,用于构建网络和初始化。如果只传入yaml文件,则参数将会被随机初始化。 - data:训练数据集的配置yaml文件。 - epochs:训练轮次,默认为100。 - patience:早停训练观察的轮次,默认为50。如果经过50轮没有精度提升,则模型会直接停止训练。 - batch:训练批次,默认为16。 - imgsz:训练图片大小,默认为640。 - save:保存训练过程和训练权重,默认为开启。可以通过设置save_period参数来设定训练过程每隔多少个轮次保存一次训练模型,默认为-1(不开启保存)。 - cache:是否采用RAM进行数据载入。设置为True可以加快训练速度,但会消耗大量内存。一般在服务器上使用。 - device:要运行的设备,可以是cuda device =0或Device =0,1,2,3,也可以是device = cpu。 - workers:载入数据的线程数。在Windows上一般为4,服务器可以设置更大。如果在Windows上遇到线程报错,可以尝试减少这个参数。默认为8。 - project:项目文件夹的名字,默认为runs。 - name:用于保存训练文件夹的名字,默认为exp,每次训练会依次累加。 - exist_ok:是否覆盖现有保存文件夹,默认为False。 - pretrained:是否加载预训练权重,默认为False。 - optimizer:优化器选择,默认为SGD。可选项包括SGD、Adam、AdamW、RMSProP。 - verbose:是否打印详细输出。 - seed:随机种子,用于复现模型,默认为0。 - deterministic:设置为True,保证实验的可复现性。 - single_cls:将多类数据训练为单类,将所有数据当作单类训练,默认为False。 - image_weights:使用加权图像选择进行训练,默认为False。 - rect:使用矩形训练,默认为False。 - cos_lr:使用余弦学习率调度,默认为False。 - close_mosaic:在最后x个轮次禁用马赛克增强,默认为10。 - resume:断点训练,默认为False。 - lr0:初始化学习率,默认为0.01。 - lrf:最终学习率,默认为0.01。 - label_smoothing:标签平滑参数,默认为0.0。 - dropout:使用dropout正则化(仅对训练进行分类),默认为0.0。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值