我有一个包含密度值的张量,在会话中评估时,取值为(0,1e-31)。然后我在张量上应用了tf.log元素,在评估这个张量时,我得到了几个带-inf的元素。
我的张量的最小值,在应用日志之前,在评估时是1.4012985e-45,然后在日志之后得到-inf。
这可能是什么?我以为它可能是因为我使用的是tf.float32而引起的,但更改为float64仍然会产生-inf值。
编辑:问题实际上是由于精度太低造成的。在图表上的所有占位符和变量上使用tf.float64导致没有-inf值。答案 0 :(得分:0)
Tensorflow输出-inf在tf.float32类型的张量上评估tf.log操作时,值非常小(~1e-50)。要防止出现此问题,您应该对图中的所有变量使用tf.float64。