使用张量流和我自己的数据时如何确定批量大小?

时间:2017-04-04 23:38:06

标签: python python-2.7 python-3.x machine-learning tensorflow

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




1 个答案:

答案 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),并且在训练和测试期间必须始终遵循该形状。