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:
```
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:
```
【相关推荐】
针对上图中最后一行中的信息, 我们来一步一步的分析。如下的输出是由 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);
...
以下输出是我在训练 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 越低, 模型的精度和泛化性能越好.