ValueError: Tensor conversion requested dtype float32 for Tensor with dtype int32

ValueError: Tensor conversion requested dtype float32 for Tensor with dtype int32

我收到以下错误

ValueError: Tensor conversion requested dtype float32 for Tensor with dtype int32: 'Tensor("Placeholder_1:0", shape=TensorShape([Dimension(128), Dimension(2)]), dtype=int32)'

当我尝试计算交叉熵损失时

losses = tf.nn.softmax_cross_entropy_with_logits(scores, input_y)

我用的是Python3.4.3。

知道为什么吗?

听起来您已经将 input_y(我假设是 tf.placeholder())定义为类型 tf.int32。将其更改为 tf.float32 或添加 casttf.cast(input_y, tf.float32)tf.to_float(input_y).

我将代码中的 %tensorflow_version 1.x 替换为 !pip install tensorflow==1.15.5,错误消失了。不仅限于版本 1.15.5,它也适用于其他一些 TensorFlow 版本 1。