在我的 GAN 网络实现中,鉴别器的输出类似于2.05145e+07导致1 - disc_output-> 1-2.05145e+07=-2.05145e+07(负数)因此log(1-2.05145e+07)导致 NaN。
2.05145e+07
1 - disc_output
1-2.05145e+07=-2.05145e+07
log(1-2.05145e+07)
我不是第一个遇到这种问题的人。一种解决方案是只允许log像 done here一样的正值。
log
有谁知道对此有更好的解决方案吗?也许一些不同的损失函数?
因为鉴别器返回一个概率值,它的输出必须在 0 和 1 之间。在使用鉴别器输出之前尝试使用sigmoid( https://www.tensorflow.org/api_docs/python/tf/sigmoid )。
sigmoid
此外,和其他人一样,我建议tf.log(tf.maximum(x, 1e-9))在数值不稳定的情况下使用。
tf.log(tf.maximum(x, 1e-9))
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
点击生成二维码
我来说两句