张量流除以0/0 =:0

时间:2017-08-02 16:21:56

标签: python tensorflow division

我希望分部为0.而不是0./0.返回NaN,或者在张量流应用程序中返回错误。

我知道如何在numpy [1][2]中做到这一点,但我是张力流的新手。

如何实现这一目标?

1 个答案:

答案 0 :(得分:4)

这个问题是2年前问的,不确定当时是否支持此API,但Tensorflow 2.X现在确实支持它:

#Computes a safe divide which returns 0 if the y is zero.
tf.math.divide_no_nan(
    x, y, name=None
)

Args:

x:张量。必须为以下类型之一:float32,float64。

y:dtype与x兼容的张量。

name:操作的名称(可选)。

返回:

x的元素值除以y。

您需要注意参数类型,它们只能是tf.float32或tf.float64,如果tf.int *,tf2.x将报告错误。以下是我在colab中正确运行的测试代码:

import tensorflow as tf
myShape=(30,30)
a = tf.constant(2, shape=myShape, dtype=tf.float32)
z = tf.constant(0, shape=myShape, dtype=tf.float32 )
cz2 = tf.math.divide_no_nan(a, z)
print(cz2)