繁体   English   中英

在tensorflow中提供占位符回溯:'tensorflow.python.framework.errors_impl.InvalidArgumentError:您必须提供占位符张量的值

[英]feed placeholder traceback in tensorflow: 'tensorflow.python.framework.errors_impl.InvalidArgumentError: You must feed a value for placeholder tensor

为什么以下代码段会引发异常? 我通过for循环中的feed_dict=输入占位符,但是当我打印xy_tensor的值时,出现以下错误消息:

'tensorflow.python.framework.errors_impl.InvalidArgumentError:您必须使用dtype float和shape [?,5]输入占位符张量'input'的值。

令人惊讶的是,当我打印另一个张量时,我没有得到某个张量的错误。 例如,当我仅打印y_tensor ,我没有得到声明x的行的错误消息,反之亦然。 我将10的范围仅用于测试问题。 主要问题是在这种情况下无法进行优化。 我该如何解决?

这里的代码:

x = tf.placeholder(tf.float32, [None, 5], name='input')

W = tf.Variable(tf.zeros([5,1]))
b = tf.Variable(tf.zeros([1]))

y = tf.nn.softmax(tf.matmul(x, W) + b) 


y_tensor = tf.placeholder(tf.float32, [None, 1], name='output')
cross_entropy = tf.reduce_mean(-tf.reduce_sum(y_tensor * tf.log(y), reduction_indices=[1]))

optimizer = tf.train.GradientDescentOptimizer(0.5).minimize(cross_entropy)


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

for i in range(10):
  batch_xs = [dataA[i], dataB[i], dataC[i], dataD[i],
              dataE[i]]]
  batch_ys = [[dataG[i]]]
  session.run(optimizer ,feed_dict={x: batch_xs, y_tensor: batch_ys})

print(session.run(y))

因为y取决于x 因此,您需要将最后一行更改为:

print(session.run(y, ,feed_dict={x: xs_test}))

其中xs_test是您的测试数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM