Paddle 使用LayerNorm之后会出现nan,去掉归一化层之后便不再出现了

xriantvc  于 5个月前  发布在  其他
关注(0)|答案(5)|浏览(61)

bug描述 Describe the Bug

强化学习时,使用layernorm后训练过程中,反向传播后梯度会变为nan

其他补充信息 Additional Supplementary Information

强化学习时,使用layernorm后训练过程中,反向传播后梯度会变为nan

lmyy7pcs

lmyy7pcs1#

你好,辛苦提供下可复现代码,从目前的描述没法看出问题原因,感谢🙏

z3yyvxxp

z3yyvxxp2#

[paddleHappo.zip](https://github.com/PaddlePaddle/Paddle/files/12060916/paddleHappo.zip) 在一次训练结束之后,查看网络参数就全部变为nan了,之前用torch实现没有出现这种问题,如果吧layerNorm层去掉也不会有这个问题

ddhy6vgd

ddhy6vgd3#

hello,这里贴出的代码有太多冗余信息了,排查起来会很耗时,能否去掉数据输入相关,先随机生成一些数据,仅针对网络结构测试,给出一个能在这里完整贴出来的最小可复现样例呢?

xxhby3vn

xxhby3vn4#

您好,由于这里是强化学习的相关代码,涉及到多个网络的参数更新,所以很难针对一个网络结果给出测试,所以你们可以排查一下吗?就是网络的结构出现了问题

cs7cruho

cs7cruho5#

你可以只针对单个网络分别测试会不会出现nan吧。根据上面的描述,如果怀疑是layerNorm的问题,可以把layernorm的输入保存下来,输入一个新的只有layernorm的网络,应该容易复现才对。

相关问题