lx-cly / YOLOv7_OBB

YOLOv7+KLD
GNU General Public License v3.0
35 stars 8 forks source link

loss is Nan #1

Open ghost opened 1 year ago

ghost commented 1 year ago

The obj loss and box loss become Nan when I use ComputeLossOTA trainning. If loss_ota==0, Everything is OK.

lx-cly commented 1 year ago

I updated the code. You can adjust the parameters of learning rate appropriately and try again. If loss still become nan, you can change use_ota=0 in hyp.scratch.custom.yaml.

ghost commented 1 year ago

已经修改好了 kld计算loss时可能会出现除0错误 在分母上添加eps就好了

ghost commented 1 year ago

还有一个问题 loss一直在下降 但是所有的指标都是0 数据集已经在其他基于角度分类的版本的yolov7_obb上验证过没有问题 image

lx-cly commented 1 year ago

还有一个问题 loss一直在下降 但是所有的指标都是0 数据集已经在其他基于角度分类的版本的yolov7_obb上验证过没有问题 image

test.pyconf_thres=0.25 设置太高了的原因?你还可以看看results.txt中关于val的loss。最近在训练dota1.0的数据集,确实训练容易出现nan,稍微改改lr和weight_decay会好一点,不过现在训练的基线指标都不太高,验证集map71%。

ghost commented 1 year ago

我用3w的数据集测试是能够训练起来的,几个epoch后map就开始越来越低了,1000张左右的小数据集进行训练就会出现上述的map为0的情况,conf_thres已经设置的比较小了还是有这样的问题,lr也调整了,用其他的obb训练工具都能训练起来,已经调试了两天还是没有定位到问题。

jsago commented 1 year ago

我用3w的数据集测试是能够训练起来的,几个epoch后map就开始越来越低了,1000张左右的小数据集进行训练就会出现上述的map为0的情况,conf_thres已经设置的比较小了还是有这样的问题,lr也调整了,用其他的obb训练工具都能训练起来,已经调试了两天还是没有定位到问题。

请问您解决了吗,我也遇到了相同的问题,我只有一次训练出map不为0,但是不是很高,其他都是损失在下降,但是指标都是0

yychayitu commented 1 year ago

请问为什么要在datasets.py中的499行写 if label[-1] == "2": continue,这是不训练难的图片吗?请问为什么注释掉了,obj loss和 box loss会出现nan?

yychayitu commented 1 year ago

请问为什么要在datasets.py中的499行写 if label[-1] == "2": continue,这是不训练难的图片吗?请问为什么注释掉了,obj loss和 box loss会出现nan?

如果注释之后,不用ota,loss都有

lx-cly commented 1 year ago

请问为什么要在datasets.py中的499行写 if label[-1] == "2": continue,这是不训练难的图片吗?请问为什么注释掉了,obj loss和 box loss会出现nan?

不训练困难样本。

hecheng000 commented 11 months ago

请问训练自己数据集出现ValueError: not enough values to unpack (expected 3, got 0)是什么问题