TypeError: Input 'y' of 'Mul' Op has type float32 that does not match type int32 of argument 'x'

TypeError: Input 'y' of 'Mul' Op has type float32 that does not match type int32 of argument 'x'

而 运行 tensorflow 出现错误 TypeError:'Mul' Op 的输入 'y' 的 float32 类型与参数 'x' 的 int32 类型不匹配。

我的密码是

import numpy as np
import pandas as pd
import tensorflow as tf
w = tf.Variable(0, dtype=tf.float32)
cost = tf.add(tf.add(w**2, tf.multiply(-10,w)), 25)
train = tf.train.GradientDescentOptimizer(0.001).minimize(cost)

init = tf.global_variables_initializer()
session = tf.session()
session.run(init)
session.run(w)

我是运行版本1.2.0 有很多这样的问题,但没有很好的答案。 你能解释一下发生了什么吗?提前致谢。

问题是您试图将一个整数(即 10)和一个浮点变量 (w) 相乘。 TensorFlow 需要输入类型匹配才能进行乘法运算。因此,请确保您对 tf.multiplytf.add 的所有输入都是同一类型。

换行,

cost = tf.add(tf.add(w**2, tf.multiply(-10,w)), 25)

cost = tf.add(tf.add(w**2, tf.multiply(-10.0,w)), 25.0)