在张量上使用非常小的值应用tf.log时获取-inf

时间:2016-12-12 12:15:45

标签: tensorflow

我有一个包含密度值的张量,在会话中评估时,取值为(0,1e-31)。然后我在张量上应用了tf.log元素,在评估这个张量时,我得到了几个带-inf的元素。

我的张量的最小值,在应用日志之前,在评估时是1.4012985e-45,然后在日志之后得到-inf。

这可能是什么?我以为它可能是因为我使用的是tf.float32而引起的,但更改为float64仍然会产生-inf值。

编辑:问题实际上是由于精度太低造成的。在图表上的所有占位符和变量上使用tf.float64导致没有-inf值。

1 个答案:

答案 0 :(得分:0)

Tensorflow输出-inf在tf.float32类型的张量上评估tf.log操作时,值非常小(~1e-50)。要防止出现此问题,您应该对图中的所有变量使用tf.float64。