我正在尝试将此(https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/3_NeuralNetworks/multilayer_perceptron.py)教程用于我自己的数据,但无法使其正常工作。我的数据是[1X10]大小的向量。教程是关于MNIST数据的,我试图用不同类型的向量来提供系统。
我收到错误:
% (np_val.shape, subfeed_t.name, str(subfeed_t.get_shape())))
ValueError: Cannot feed value of shape (0, 1) for Tensor u'Placeholder_1:0',
which has shape '(?, 2)'
batch_x和batch_y出错,但我无法弄清楚如何决定它们。我将很感激解决这个问题的每一个想法。感谢
# Training cycle
for epoch in range(training_epochs):
avg_cost = 0.
total_batch = int(train_data.shape[0]/batch_size)
# Loop over all batches
for i in range(total_batch):
batch_x = train_data[:i*batch_size]
batch_y = train_labels[:i*batch_size]
np.reshape(batch_x, (-1, 10))
np.reshape(batch_y, (-1, 1))
# Run optimization op (backprop) and cost op (to get loss value)
_, c = sess.run([optimizer, cost], feed_dict={x: batch_x,
y: batch_y})
# Compute average loss
avg_cost += c / total_batch
# Display logs per epoch step
if epoch % display_step == 0:
print("Epoch:", '%04d' % (epoch+1), "cost=", \
"{:.9f}".format(avg_cost))
print("Optimization Finished!")

答案 0 :(得分:0)
错误可能与batch_y
的外观有关。您的输入占位符y
似乎期望大小为[?, 2]
的张量(此处?
指的是可变大小)但您正在输入大小为[0, 1]
的张量。虽然你的y_batch
的第一个维度为0(我会检查为什么会发生这种情况)已经很奇怪了,但是当预期y_batch
的第二个维度似乎是1时,它也存在问题。 2 - 这可能是你看到错误的原因。为什么在将batch_y
提供给模型(np.reshape(batch_y, (-1, 1))
)之前重塑[?, 2]
?该模型将输入占位符定义为特定形状(例如jquery data-table
),并且在训练和测试期间必须始终遵循该形状。