单维张量流占位符

时间:2016-12-31 07:51:45

标签: python numpy 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"]()]]

然而,据我所知,没有不匹配。

1 个答案:

答案 0 :(得分:1)

在您的代码中尝试此修改:

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

@Meng Sun:

我认为将列表[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(错误)是在没有提要的情况下执行的。