Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

训练自己的数据集出现Nan #36

Open
zhangshaojie1993 opened this issue Sep 6, 2023 · 12 comments
Open

训练自己的数据集出现Nan #36

zhangshaojie1993 opened this issue Sep 6, 2023 · 12 comments

Comments

@zhangshaojie1993
Copy link

每次在训练到接近8K iterations的时候都会出现loss为Nan的情况,数据集里有自己业务的数据。
nan

@Yu-Cheung
Copy link

学习率太高了吗?导致梯度爆炸?

@zhangshaojie1993
Copy link
Author

学习率太高了吗?导致梯度爆炸?
用的作者默认的学习率

@Yu-Cheung
Copy link

学习率太高了吗?导致梯度爆炸?
用的作者默认的学习率

那我不太懂了。我训练也出问题了,我准备重新训练的,目前联系作者联系不上,可能他太忙了。我训练的时候,loss是稳定上升,最后趋于收敛了,我也搞不懂原因
image

@zhangshaojie1993
Copy link
Author

scene2
@gangweiX 我只使用sceneflow数据集训练了一把,还是出现了nan,使用的是作者训练代码里的默认参数,能帮忙解答一下吗?

@Windsrain
Copy link

你好,你的问题可能有三种原因:

  1. 在不同设备上,seed即便相同初始化可能也会不同,可以尝试改一下seed;
  2. 半精度混合训练虽然提高了训练速度,但只有16bit,当数据过大时,容易发生溢出,出现nan,可以尝试关闭;(在train._stereo.py第206行,把mixed_precision的default参数删除,不要把default设置为False,参数判断的是有无字符串)
  3. 初始视差用的smooth_l1_loss监督,其余视差用的l1_loss监督,不同loss可能影响训练的稳定性,可以尝试都换成l1_loss。

另外,我建议可以直接加载sceneflow的预训练模型,然后在自己的数据集上训练,避免重新训练造成的不稳定。

@zhangshaojie1993
Copy link
Author

你好,你的问题可能有三种原因:

1. 在不同设备上,seed即便相同初始化可能也会不同,可以尝试改一下seed;

2. 半精度混合训练虽然提高了训练速度,但只有16bit,当数据过大时,容易发生溢出,出现nan,可以尝试关闭;(在train._stereo.py第206行,把mixed_precision的default参数删除,不要把default设置为False,参数判断的是有无字符串)

3. 初始视差用的smooth_l1_loss监督,其余视差用的l1_loss监督,不同loss可能影响训练的稳定性,可以尝试都换成l1_loss。

另外,我建议可以直接加载sceneflow的预训练模型,然后在自己的数据集上训练,避免重新训练造成的不稳定。

非常感谢!!我后来就是用的sceneflow预训练模型来训练的,并且学习率调成了之前的1/10,训练变稳定了!

@1790426751
Copy link

你好,我在复现论文时发现训练过程中会出现nan,所以我在代码中添加以下代码(图中画圈的)想要查看跑到第几个epoch时会出现nan。然后,我发现在训练一开始就有参数的梯度是nan,请问这是正常的吗?
image

@gangweiX
Copy link
Owner

gangweiX commented Nov 2, 2023 via email

@1790426751
Copy link

感谢您之前的回复,我还有一个小问题想要请教:就是关于训练参数--slow_fast_gru的设置,我看这个参数在前身RAFT-Stereo中说可以提高计算速度,但是在您的论文并没有提到这点,在代码中这参数也是默认为false的。请问这个参数我要设置为true还是保持默认就好?

@gangweiX
Copy link
Owner

gangweiX commented Nov 3, 2023 via email

@Luckyangle1232
Copy link

作者您好,我在sceneflow数据集上训练您的模型时,发现如果将lr设置为0.001,batchsize=2,然后跑到5k步左右的时候,3像素偏差会出现nan,我想咨询一下,如果batchsize设置只能是2的话,如果让网络可以快速下降,lr应该设置为多少呢

@gangweiX
Copy link
Owner

gangweiX commented Nov 30, 2023 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants