Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tensorflow - ValueError: Cannot feed value of shape #5905

Closed
yidan216home opened this issue Nov 28, 2016 · 1 comment
Closed

Tensorflow - ValueError: Cannot feed value of shape #5905

yidan216home opened this issue Nov 28, 2016 · 1 comment
Labels
stat:community support Status - Community Support

Comments

@yidan216home
Copy link

yidan216home commented Nov 28, 2016

I have 12 input integer features. Output and labels is 1 or 0. I examines MNIST example from tensorflow website.
Here is my code:

import tensorflow as tf
import numpy as np
def init_weights(shape):
    return tf.Variable(tf.random_normal(shape, stddev=0.01))
def model(X, w):
    return tf.matmul(X, w) # notice we use the same model as linear regression, this is because there is a baked in cost function which performs softmax and cross entropy
train_data1  = "./data/xx.csv"
test_data1 = "./data/xxx.csv"
train_label1 = "./data/xxl.csv"
test_label1 = "./data/xx.csv"
train_data = np.genfromtxt(train_data1, delimiter=',')
train_label = np.genfromtxt(train_label1, delimiter=',').astype(int)
test_data = np.genfromtxt(test_data1, delimiter=',')
test_label = np.genfromtxt(test_label1, delimiter=',').astype(int)
# Load datasets.
trX, trY, teX, teY = train_data,train_label, test_data, test_label
X = tf.placeholder("float", [None, 12]) # create symbolic variables
Y = tf.placeholder("float", [None, 2])

w = init_weights([12, 2]) 
py_x = model(X, w)

cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(py_x, Y)) # compute mean cross entropy (softmax is applied internally)
train_op = tf.train.GradientDescentOptimizer(0.05).minimize(cost) # construct optimizer
predict_op = tf.argmax(py_x, 1) # at predict time, evaluate the argmax of the logistic regression

# Launch the graph in a session
with tf.Session() as sess:
    # you need to initialize all variables
    tf.initialize_all_variables().run()

    for i in range(100):
         #for (x, y) in zip(train_X, train_Y):
             #sess.run(optimizer, feed_dict={X: trX, Y: trY})
        for start, end in zip(range(0, len(trX), 128), range(128, len(trX)+1, 128)):
            sess.run(train_op, feed_dict={X: trX[start:end], Y: trY[start:end]})
        print(i, np.mean(np.argmax(teY, axis=1) ==
                         sess.run(predict_op, feed_dict={X: teX})))

But I run upper code, I get an error. The compiler says that:

Traceback (most recent call last):
  File "LRexample.py", line 74, in <module>
    sess.run(train_op, feed_dict={X: trX[start:end], Y: trY[start:end]})
ValueError: Cannot feed value of shape (128,) for Tensor u'Placeholder_1:0', which has shape '(?, 2)

How can I handle this error?

@prb12 prb12 added the stat:community support Status - Community Support label Nov 28, 2016
@yidan216home
Copy link
Author

I solved this problem.
firstly,I transformed load data into :

train_data = np.genfromtxt(train_data1, delimiter=',')
train_label = np.transpose(train_label1, delimiter=',')
test_data = np.genfromtxt(test_data1, delimiter=',')
test_label = np.transpose(test_label1, delimiter=',')

Then,transformed trX, trY, teX, teY data into:

# convert the data
trX, trY, teX, teY = train_data,train_label, test_data, test_label
temp = trY.shape
trY = trY.reshape(temp[0], 1)
trY = np.concatenate((1-trY, trY), axis=1)
temp = teY.shape
teY = teY.reshape(temp[0], 1)
teY = np.concatenate((1-teY, teY), axis=1)

Finally,I transformed launching the graph in a session into:

with tf.Session() as sess:
    # you need to initialize all variables
    tf.initialize_all_variables().run()

    for i in range(100):
            sess.run(train_op, feed_dict={X:  trX, Y: trY})        
            print(i, np.mean(np.argmax(teY, axis=1) == sess.run(predict_op, feed_dict={X: teX})))

That's all.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
stat:community support Status - Community Support
Projects
None yet
Development

No branches or pull requests

2 participants