问题
tensorflow2 运行以下代码,出现问题。
logits = tf.constant([[2, 7, 5]])
y_pred = tf.math.sigmoid(logits)
print(y_pred)
NotFoundError: Could not find valid device for node.
Node:{{node Sigmoid}}
All kernels registered for op Sigmoid :
原因
logits = tf.constant([[2, 7, 5]]) 是 tf.int32格式的;但很多tf函数都要求浮点格式,一般是 tf.float32,经常因为数据类型没注意而出错。
解决
logits = tf.constant([[2, 7, 5]],dtype=tf.float32)
y_pred = tf.math.sigmoid(logits)
print(y_pred)
tf.Tensor([[0.880797 0.999089 0.9933072]], shape=(1, 3), dtype=float32)