weixin_69246370 2023-12-07 16:17 采纳率: 16.7%
浏览 13

yolov8训练自己数据集,batch设置问题!

yolov8训练数据集时,batch只有设置为1才能正确训练,不然就会出现这种情况
有kind man知道怎么回事?怎么解决吗?yolov8的原代码一点没动


```python
Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
       5/50      2.34G        nan        nan        nan         30        640:

```

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-12-07 18:43
    关注

    【相关推荐】



    • 这篇博客: 理解 YOLOv3 的训练输出日志信息中的 Batch 输出 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:

      针对上图中最后一行中的信息, 我们来一步一步的分析。如下的输出是由 detector.c 生成的, 具体代码见:

      点击打开链接.

      部分关键代码如下:

      ...
      
      if (avg_loss < 0) avg_loss = loss;
      avg_loss = avg_loss*.9 + loss*.1;
      
      i = get_current_batch(net);
      
      printf("%ld: %f, %f avg, %f rate, %lf seconds, %d images\n", 
              get_current_batch(net), 
              loss, 
              avg_loss, 
              get_current_rate(net), 
              what_time_is_it_now()-time, 
              i*imgs);
      ...
      • 9798: 指示当前训练的迭代次数;
      • 0.370096: 是总体的 Loss(损失);
      • 0.451929 avg: 是平均 Loss, 这个数值应该越低越好, 一般来说, 一旦这个数值低于 0.060730 avg 就可以终止训练了;
      • 0.001000 rate: 代表当前的学习率, 是在.cfg文件中定义的;
      • 3.300000 seconds: 表示当前批次训练花费的总时间;
      • 627072 images: 这一行最后的这个数值是 9798*64 的大小, 表示到目前为止, 参与训练的图片的总量.

      以下输出是我在训练 VOC 时达到 283234 次迭代时候的输出:

      283234: 0.783273, 0.827796 avg, 0.000020 rate, 1.650999 seconds, 33988080 images

      可以看到 28W 次的训练之后, Loss 和 Avg Loss 并没有降低到 0.1 以下. 但是模型检测目标的准确率也已经很高了, 这就说明如果 Loss 和 Avg Loss 随着训练迭代次数的增加下降幅度变化很小, 这时就可以测试训练得到的模型了.

      当然在实际应用过程中, 并不是 Loss 越低, 模型的精度和泛化性能越好.



    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 12月7日

悬赏问题

  • ¥15 关于#java#的问题,请各位专家解答!
  • ¥15 急matlab编程仿真二阶震荡系统
  • ¥20 TEC-9的数据通路实验
  • ¥15 ue5 .3之前好好的现在只要是激活关卡就会崩溃
  • ¥50 MATLAB实现圆柱体容器内球形颗粒堆积
  • ¥15 python如何将动态的多个子列表,拼接后进行集合的交集
  • ¥20 vitis-ai量化基于pytorch框架下的yolov5模型
  • ¥15 如何实现H5在QQ平台上的二次分享卡片效果?
  • ¥30 求解达问题(有红包)
  • ¥15 请解包一个pak文件