Tensorflow session.run feed dict mechanism
<p>So I am new to tensor flow, and my error is that I am feeding in 
invalid argument to x for train_neural_network(x).</p>

<p>What I am trying to do is for 4999 iterations, input a [1,400] array that are 
the bit values for a picture. So input 4999 pictures. I read the images in with 
scipy.io as matrixes not tensors. </p>

<p>I am confused about how the placeholders are used and what is generally wrong with my code. since I feed in x and y's to the placeholders, shouldn't the input x to train_neural_network(x) be the placeholder values?</p>

<pre><code>x = tf.placeholder('float',[1,400])
y = tf.placeholder('float',[1,10])


def neural_network_model(data):

        hidden_layer1 = {'weights':tf.Variable(tf.random_normal([400,n_nodes_hl1])),
                        'biases':tf.Variable(tf.random_normal(n_nodes_hl1))}

        hidden_layer2 = {'weights':tf.Variable(tf.random_normal([n_nodes_hl1,n_nodes_hl2])),
                        'biases':tf.Variable(tf.random_normal(n_nodes_hl2))}

        hidden_layer3 = {'weights':tf.Variable(tf.random_normal([n_nodes_hl2,n_nodes_hl3])),
                        'biases':tf.Variable(tf.random_normal(n_nodes_hl3))}

        output_layer = {'weights':tf.Variable(tf.random_normal([n_nodes_hl3,n_classes])),
                        'biases':tf.Variable(tf.random_normal([n_classes]))}

        #(input * weights) + biases 

        l1 = tf.add(tf.matmul(data, hidden_layer1['weights']),hidden_layer1['biases'])
        l1 = tf.nn.relu(l1)

        l2 = tf.add(tf.matmul(l1, hidden_layer2['weights']),hidden_layer2['biases'])
        l2 = tf.nn.relu(l2)

        l3 = tf.add(tf.matmul(l2, hidden_layer3['weights']),hidden_layer3['biases'])
        l3 = tf.nn.relu(l3)

        output = tf.add(tf.matmul(l3, output_layer['weights']),output_layer['biases'])

        return output

def train_neural_network(x): 

        prediction = neural_network_model(x)
        cost = tf.reduce_mean( tf.nn.softmax_cross_entropy_with_logits(prediction,y))
        optimizer = tf.train.AdamOptimizer().minimize(cost)

        hm_epochs = 4999 

        with tf.Session() as sess:
            sess.run(tf.initialize_all_variables())

            for epoch in range(hm_epochs):  

                sess.run([optimizer,cost], feed_dict = {x: input_X[epoch], y: encoded_y[epoch]})
                print('Epoch',epoch,'completed out of', hm_epochs)
</code></pre>

<p>The actual Error looks like: </p>

<pre><code>%run "/Users/JaeWoo/Desktop/research/tensorpractice/DeepNeural.py"

train_neural_network(x)

W tensorflow/core/framework/op_kernel.cc:940] Invalid argument: shape must be a vector of {int32,int64}, got shape []

W tensorflow/core/framework/op_kernel.cc:940] Invalid argument: shape must be a vector of {int32,int64}, got shape []
... repeated for several times 


InvalidArgumentError                      Traceback (most recent call last)

&lt;ipython-input-86-7c7cbdae9b34&gt; in &lt;module&gt;()

----&gt; 1 train_neural_network(x)

/Users/JaeWoo/Desktop/research/tensorpractice/DeepNeural.py in 

train_neural_network(x)

     67 
     68         with tf.Session() as sess:
---&gt; 69             sess.run(tf.initialize_all_variables())
     70 
     71             for epoch in range(hm_epochs):
</code></pre>