我使用由一些负数组成的 gensim 库保存了我的文本向量。会影响训练吗?如果不是,那么为什么我要先获得鉴别器的 nan 损失值,然后在经过某些训练步骤后才获得鉴别器和生成器的损失值?
问问题
4627 次
1 回答
4
NaN 损失有几个原因,以及模型出现分歧的原因。我见过的最常见的是:
- 你的学习率太高了。如果是这种情况,损失会增加,然后发散到无穷大。
- 您得到除以零错误。如果是这种情况,您可以
1e-8
在输出概率中添加一个小数字。 - 你有错误的输入。如果是这种情况,请确保不要为模型提供 NaN。即
assert not np.any(np.isnan(x))
在输入数据上使用。 - 您的标签不在目标函数的同一域中。如果是这种情况,请检查标签的范围并确保它们匹配。
如果以上都没有帮助,请尝试检查激活函数、优化器、损失函数、网络的大小和形状。
最后,虽然不太可能,但您使用的框架可能存在错误。如果有其他人有同样的问题,请检查框架的 repo。
于 2018-09-06T20:33:01.173 回答