R0oup1iao / Traffic-Transformer

This is a Pytorch implementation of Traffic Transformer. Now the corresponding paper is available online at
https://ieeexplore.ieee.org/document/9520129
23 stars 5 forks source link

validation和test出现大量的nan #5

Closed Weijiang-Xiong closed 1 year ago

Weijiang-Xiong commented 1 year ago

Hello, 首先感谢开源!我跑代码的时候遇到了训练不稳定的情况,结果里面出现很多nan,导致最后的validation loss是0。请问你有遇到过同样的情况吗?是怎么解决的呢?

我看到util.py里计算loss的时候也默认把nan都去掉了,但debug的时候发现是multi head selfattention输入的x embedding全都一样,导致出来的attention分数都一样。

debug进去发现是self-attentention的分数都一样, layernorm之后就全是0了.

R0oup1iao commented 1 year ago

我没有遇到过这种情况。

但是根据我的经验,出现这种情况一般都是因为设置了不合理的Learning Rate,或是不合理的网络参数,使得神经网络的优化过程不收敛(俗称train飞了),希望我的经验能给您一些帮助

Weijiang-Xiong commented 1 year ago

感谢回复,nan是我用metr训练的时候发现的,查了下发现transformer训练的时候容易出现low rank问题 (https://spaces.ac.cn/archives/7325)我把transformer层数从默认的6 encoder 6 decoder 减小到 2 encoder 4 decoder就好了