我正在使用Python 3.6中的TensorFlow代码。当我尝试此操作时,会发生一个例外:
InvalidArgumentError(请参见上文(:您必须使用dtype float为占位符张量"占位符"的价值
[[node:占位符=占位符= dt_float,shape =,_device ="/job:localhost/epplica:0/task:0/task:0/device:cpu:0"]
import tensorflow as tf
x_data = [1.0, 2.0, 3.0]
y_data = [1.0, 2.0, 3.0]
W = tf.Variable(tf.random_uniform([1]), name='weight')
b = tf.Variable(tf.random_uniform([1]), name='bias')
X = tf.placeholder(tf.float32)
Y = tf.placeholder(tf.float32)
hypothesis = W * X + b
cost = tf.reduce_mean(tf.square(hypothesis - Y))
a = tf.Variable(0.1)
optimizer = tf.train.GradientDescentOptimizer(a)
train = optimizer.minimize(cost)
init = tf.initialize_all_variables()
sess = tf.Session()
sess.run(init)
for index in range(2001):
sess.run(train, feed_dict={X: x_data, Y: y_data})
if index % 20 == 0:
print(index, sess.run(cost), sess.run(W), sess.run(b))
我认为问题是在最后一行,您正在以成本运行会话。尝试用
替换最后一行print(index, sess.run(cost, feed_dict={X: x_data, Y: y_data}), sess.run(W), sess.run(b))
这是由于成本需要获取X和Y数据以找到假设的原因,如您在代码中指定的那样,可以使用 feed_dict 。我粘贴了您评估成本的线路。
hypothesis = W * X + b
cost = tf.reduce_mean(tf.square(hypothesis - Y))