为什么我在 GAN 的训练鉴别器和生成器中得到 nan 损失值?
why do i get nan loss value in training discriminator and generator of GAN?
我使用由一些负数组成的 gensim 库保存了我的文本向量。会不会影响训练?
如果不是那么为什么我要先为判别器获得 nan 损失值,然后在某些训练步骤后为判别器和生成器获得 nan 损失值?
NaN 损失 以及模型差异的原因有多种。 最常见的 我见过的是:
- 您的学习率太高。如果是这种情况,损失会增加,然后发散到无穷大。
- 您收到 除以零 的错误。如果是这种情况,您可以在输出概率中添加一个小数字,例如
1e-8
。
- 您有 错误输入。如果是这种情况,请确保您没有为模型提供 NaN。 即对输入数据使用
assert not np.any(np.isnan(x))
。
- 您的标签不在您的 objective 函数的 同一域 中。如果是这种情况,请检查标签的范围并确保它们匹配。
如果以上 none 有帮助,请尝试检查激活函数、优化器、损失函数、网络的大小和形状。
最后,尽管不太可能,您使用的框架可能存在错误。如果有其他人有同样的问题,请检查框架的 repo。
我使用由一些负数组成的 gensim 库保存了我的文本向量。会不会影响训练? 如果不是那么为什么我要先为判别器获得 nan 损失值,然后在某些训练步骤后为判别器和生成器获得 nan 损失值?
NaN 损失 以及模型差异的原因有多种。 最常见的 我见过的是:
- 您的学习率太高。如果是这种情况,损失会增加,然后发散到无穷大。
- 您收到 除以零 的错误。如果是这种情况,您可以在输出概率中添加一个小数字,例如
1e-8
。 - 您有 错误输入。如果是这种情况,请确保您没有为模型提供 NaN。 即对输入数据使用
assert not np.any(np.isnan(x))
。 - 您的标签不在您的 objective 函数的 同一域 中。如果是这种情况,请检查标签的范围并确保它们匹配。
如果以上 none 有帮助,请尝试检查激活函数、优化器、损失函数、网络的大小和形状。
最后,尽管不太可能,您使用的框架可能存在错误。如果有其他人有同样的问题,请检查框架的 repo。