Confused on how tensorflow feed_dict works
<p>Recently started using tensorflow and I'm really confused on the functionality of feed_dict. </p>

<p>Looking at the mnist example from the tensorflow website, x is a symbolic placeholder that will be filled with a new batch of images every training iteration, so 'None' here could also be 'batch_size'</p>

<pre><code>x = tf.placeholder(tf.float32, shape=[None, 784])
</code></pre>

<p>when looking at the convolutional part of this tutorial, there's a command to reshape x from it's flattened 1x784 shape back to a 2D image 28x28 shape</p>

<pre><code>x_image = tf.reshape(x, [-1,28,28,1])
</code></pre>

<p>during the training loop, x is fed through the command</p>

<pre><code>train_step.run(feed_dict={x: batch[0], y_: batch[1], keep_prob: 0.5})
</code></pre>

<p>My question is when we feed in values to x, does tensorflow automatically vectorize every op involving x? So for example when we define the op</p>

<pre><code>h_conv1 = tf.nn.relu(conv2d(x_image, W_conv1) + b_conv1)
</code></pre>

<p>this will automatically work across the entire batch?</p>

<p>if x is ndarray with each row being a flattened image, because we specified shape 'None' in the x placeholder tensorflow automatically knows to use each row as an individual training sample, and vectorize all subsequent ops?</p>