在将张量流与我自己的数据一起使用时如何确定批量大小



我正在尝试将此(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!")

错误可能出在您的batch_y的外观上。似乎您的输入占位符y期待大小为 [?, 2] 的张量(这里?指的是可变大小(,但您正在馈送大小为 [0, 1] 的张量。虽然你的第一维y_batch是 0 已经很奇怪了(我会检查为什么会这样(,但也有一个问题,即y_batch的第二维似乎是 1,而它预计是 2 - 这可能就是你看到这个错误的原因。为什么要在将batch_y喂给模型之前对其进行整形(np.reshape(batch_y, (-1, 1))(?该模型以特定形状定义输入占位符(例如,为您 [?, 2](,您必须在训练和测试期间始终坚持该形状。

最新更新