title: The output size of theano.tensor.nnet.conv.conv2d
body: <p>The function that is currently being used widely on tutorials and other place is of the form:</p>
  
  <pre><code>conv_out = conv2d(
          input= x, # some 4d tensor 
          filters= w, # some shared variable
          filter_shape= [ nkerns, stack_size, filter_height, filter_width ],
          image_shape= [ batch_size, stack_size, height, width ]
      )
  </code></pre>
  
  <ol>
  <li><p>If for the first layer of a CNN, I have <code>filter_shape</code> as <code>[ 20, 1 , 7, 7 ]</code> which is the number of kernals being 20, each 7 X 7, what does the '1' stand for ? My <code>image_shape</code> is <code>[100, 1, 84, 84 ]</code>.</p></li>
  <li><p>This convolution now outputs a tensor of shape <code>[ 100, 20, 26, 26]</code> which I understand. My next layer now takes the parameters <code>filter_shape</code> = <code>[50, 20, 5 ,5 ]</code> , <code>image_shape</code> = <code>[ 100, 20 ,26, 26 ]</code> and produces a output of shape  <code>[ 100 ,50 ,11 ,11 ]</code>. I seem to kind of understand this operation, except, if I want to use a '50' filters layer each working on previous 20 feature maps produced, shouldn't I produce 1000 feature maps in all instead of producing just 50 feature maps ? To restate my question, I have a stack of 20 feature maps each running 50 kernals of convolution, shouldn't my output shape be <code>[100, 1000, 11, 11]</code> instead of <code>[ 100, 50 , 11, 11]</code> ?</p></li>
  </ol>