tensorflow 划分为 0/0=:0
tensorflow divide with 0/0=:0
我想将 return 0.
除以 0./0.
而不是 NaN
或 tensorflow 应用程序中的错误。
我知道如何在 numpy 中做到这一点 [1], [2],但我是 tensorflow 的新手。
如何实现?
这个问题是2年前问的,不知道当时是否支持这个API,但是Tensorflow2.X现在真的支持了:
#Computes a safe divide which returns 0 if the y is zero.
tf.math.divide_no_nan(
x, y, name=None
)
参数:
x:张量。必须是以下类型之一:float32, float64.
y:dtype 与 x 兼容的 Tensor。
名称:操作的名称(可选)。
Returns:
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)
我想将 return 0.
除以 0./0.
而不是 NaN
或 tensorflow 应用程序中的错误。
我知道如何在 numpy 中做到这一点 [1], [2],但我是 tensorflow 的新手。
如何实现?
这个问题是2年前问的,不知道当时是否支持这个API,但是Tensorflow2.X现在真的支持了:
#Computes a safe divide which returns 0 if the y is zero.
tf.math.divide_no_nan(
x, y, name=None
)
参数:
x:张量。必须是以下类型之一:float32, float64.
y:dtype 与 x 兼容的 Tensor。
名称:操作的名称(可选)。
Returns:
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)