最近,改了基线代码的注意力部分,加了一个可学习权重系数,没有报错,但是出现了“Train Loss = nan Val Loss = nan”的结果。

self.Wmh = nn.Parameter(torch.FloatTensor(model_dim, model_dim)).cuda()

自己上网搜了也没找到解决办法,无奈求助师兄,帮我调了下,发现是这个参数的初始化问题,不知道为啥之前那种初始化参数的方式得到的是全为0的参数矩阵,就导致了梯度消失。果然后来改成正态初始化就正常了。

self.Wmh = nn.init.xavier_uniform_(
     [nn.Parameter(torch.FloatTensor(model_dim, model_dim).to(DEVICE))
Logo

一站式 AI 云服务平台

更多推荐