为什么以下代码会引发异常?我在feed_dict=
循环中通过for
提供占位符,但是当我打印x
或y_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))
答案 0 :(得分:0)
因为y
取决于x
。因此,您需要将最后一行更改为:
print(session.run(y, ,feed_dict={x: xs_test}))
其中xs_test
是您的测试数据。