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

anamar picture anamar · Feb 13, 2016 · Viewed 25.7k times · Source

I get following error

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

when I try to calculate cross entropy loss

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

I use Python 3.4.3.

Any ideas why?

Answer

mrry picture mrry · Feb 13, 2016

It sounds like you have defined input_y—which I am assuming is a tf.placeholder()—as having type tf.int32. Either change this to tf.float32 or add a cast: tf.cast(input_y, tf.float32) or tf.to_float(input_y).