ValueError: Cannot feed value of shape (3,) for Tensor 'X:0', which has shape '(1, 3)' I am trying to do a multivariate linear regression and I am having some issues. Namely, I am getting the following error:

ValueError: Cannot feed value of shape (3,) for Tensor 'X:0', which has shape '(1, 3)'


I have 3 feature variables, which I call trainX and 1 label, which I call trainY. Their shapes are the following (they are numpy arrays):

trainX.shape:
(2500, 3)
trainY.shape:
(2500,)


The following piece of code defines the tensors that I use to compute the model:

X = tf.compat.v1.placeholder("float", [1, 3], name="X")
Y = tf.compat.v1.placeholder("float", [1], name="Y")

W = tf.Variable(tf.zeros([3, 1]), name="W")
b = tf.Variable(tf.zeros([1]), name="b")


I calculate the predicted label and the cost function and the optimizer by doing:

predicted_y = tf.matmul(X, W) + b
cost = tf.reduce_sum(tf.pow(predicted_y-Y, 2)) / (2 * n)
optimizer = tf.compat.v1.train.GradientDescentOptimizer(learning_rate).minimize(cost)


I am getting the error in the tensor-flow session, namely in the following piece of code:

with tf.Session() as sess:
    sess.run(init)
    for epoch in range(training_epochs):
        for (_x, _y) in zip(trainX, trainY):
            sess.run(optimizer, feed_dict={X: _x, Y: _y})
        if (epoch + 1) % 100 == 0:
            c = sess.run(cost, feed_dict={X: trainX, Y: trainY})
            print("Epoch", (epoch + 1), ": cost =", c, "W =", sess.run(W), "b =", sess.run(b))
    # Storing necessary values to be used outside the Session
    training_cost = sess.run(cost, feed_dict={X: trainX, Y: trainY})
    weight = sess.run(W)
    bias = sess.run(b)


Any help would be greatly appreciated.
trainX has shape (2500, 3), so when you iterate over trainX you get values with shape (3,).  To match the shape of your placeholder "X", you need them to have shape (1, 3).  This can be accomplished with numpy.reshape:

# do this after loading trainX
trainX = trainX.reshape((-1, 1, 3))
# new shape: (2500, 1, 3)