强化学习时,使用layernorm后训练过程中,反向传播后梯度会变为nan
lmyy7pcs1#
你好,辛苦提供下可复现代码,从目前的描述没法看出问题原因,感谢🙏
z3yyvxxp2#
[paddleHappo.zip](https://github.com/PaddlePaddle/Paddle/files/12060916/paddleHappo.zip) 在一次训练结束之后,查看网络参数就全部变为nan了,之前用torch实现没有出现这种问题,如果吧layerNorm层去掉也不会有这个问题
ddhy6vgd3#
hello,这里贴出的代码有太多冗余信息了,排查起来会很耗时,能否去掉数据输入相关,先随机生成一些数据,仅针对网络结构测试,给出一个能在这里完整贴出来的最小可复现样例呢?
xxhby3vn4#
您好,由于这里是强化学习的相关代码,涉及到多个网络的参数更新,所以很难针对一个网络结果给出测试,所以你们可以排查一下吗?就是网络的结构出现了问题
cs7cruho5#
你可以只针对单个网络分别测试会不会出现nan吧。根据上面的描述,如果怀疑是layerNorm的问题,可以把layernorm的输入保存下来,输入一个新的只有layernorm的网络,应该容易复现才对。
5条答案
按热度按时间lmyy7pcs1#
你好,辛苦提供下可复现代码,从目前的描述没法看出问题原因,感谢🙏
z3yyvxxp2#
[paddleHappo.zip](https://github.com/PaddlePaddle/Paddle/files/12060916/paddleHappo.zip) 在一次训练结束之后,查看网络参数就全部变为nan了,之前用torch实现没有出现这种问题,如果吧layerNorm层去掉也不会有这个问题
ddhy6vgd3#
hello,这里贴出的代码有太多冗余信息了,排查起来会很耗时,能否去掉数据输入相关,先随机生成一些数据,仅针对网络结构测试,给出一个能在这里完整贴出来的最小可复现样例呢?
xxhby3vn4#
您好,由于这里是强化学习的相关代码,涉及到多个网络的参数更新,所以很难针对一个网络结果给出测试,所以你们可以排查一下吗?就是网络的结构出现了问题
cs7cruho5#
你可以只针对单个网络分别测试会不会出现nan吧。根据上面的描述,如果怀疑是layerNorm的问题,可以把layernorm的输入保存下来,输入一个新的只有layernorm的网络,应该容易复现才对。