单个维度的tensorflow占位符



我很难启动这个非常简单的tensorflow代码。我正在尝试做一个简单的线性拟合,其形式为y=theta1*x+theta2

我创建了x和y的数据作为形状[10]的numpy float32数组,我创建了它们相应的占位符,如下所示:

tf_x = tf.placeholder(tf.float32, [10])
tf_y = tf.placeholder(tf.float32, [10])

我给它们喂食如下:

sess.run(train, feed_dict={tf_x: x_data, tf_y: y_data})

完整的代码有点长,所以我创建了一个要点:https://gist.github.com/meowmiau/369393f41b679dd95f4ac4e2e16b0782

我得到的问题是:

tensorflow.python.framework.errors.InvalidArgumentError: You must feed a value for placeholder tensor 'Placeholder' with dtype float and shape [10]
[[Node: Placeholder = Placeholder[dtype=DT_FLOAT, shape=[10], _device="/job:localhost/replica:0/task:0/cpu:0"]()]]

然而,据我所知,没有错配。

在代码中尝试此修改:

for i in range(1000):
x_data, y_data = gen_data()
_, e = sess.run([train, err], feed_dict={tf_x: x_data, tf_y: y_data})
print e

@孟孙:

我认为将列表[train,err]传递给sess.run()是一个可能的解决方案。以下代码段的工作方式相同:

for i in range(1000):
x_data, y_data = gen_data()
feed_dict={tf_x: x_data, tf_y: y_data}
print(sess.run(err, feed_dict=feed_dict))
sess.run(train, feed_dict=feed_dict)

在您的代码中,两个占位符抛出错误"您必须为占位符张量提供一个值"因为执行sess.run(err)时没有提要。

最新更新