前几天训练模型的时候,遇到了一个问题,就是特征值输入模型之前好好的,但是经过我的网络之后,输出的embedding全变成了nan。
最让人无语的是,这是发生在验证阶段,而不是训练阶段!如果是验证阶段,就可以考虑一下是不是梯度爆炸的问题。但是发生在验证阶段,就很离谱了!
而且,使用小部分测试数据的时候,模型居然一点问题都没有,当使用全部数据的时候,就不行了!当然,我尝试找数据集的问题,对数据集进行随机抽样,输进去其他不管是有规律还是没规律的测试数据集,都不好使,只要是准备真刀真枪的训练模型看效果了,哎,不好使!要测试模型能不能跑通的话,哎,好使!
这个时候,就应该找找问题了,首先我是看了val部分的权重和梯度值,也就是用下面的代码
for name, parms in model.named_parameters():
print(name