I am following the Tensorflow MNIST tutorial.
Reading through the theoretical / intuition section, I came to understand x
, the input, as being a column matrix.
In fact, when describing softmax
, x
is shown as a column matrix:
However, declared in tensorflow
, x looks like this:
x = tf.placeholder(tf.float32, [None, 784])
I read this a x
being an array of variable length ( None ) with each element of this array being a column matrix of size 784.
Even though x
is declared as an array of column matrices, it is used as if it was just a column matrix:
y = tf.nn.softmax(tf.matmul(x, W) + b)
In the example, W
and b
are declared intuitivly, as variables of shape [784, 10]
and [10]
respectivly, which makes sense.
My questions are:
Does Tensorflow automatically perform the softmax operation for each column matrix in x?
Am I correct in assuming [None, value] means, intuitivly, an array of variable size with each element being an array of size value? Or is it possible for [None, value] to also mean just an array of size value? ( without it being in a container array )
What is the correct way to link the theoretical description, where x is a column vector to the implementation, where x is an array of column matrices?
Thanks for your help!