title: axis and dimension mismatch between numpy and tensorflow
body: <p>In numpy
  <code>A = np.array([[[1,2,3],[4,5,6]],[[1,2,3],[4,5,6]]])</code> we see here shape is <code>(2, 3, 3)</code>
  <a href="https://i.stack.imgur.com/rfgyR.png" rel="nofollow noreferrer">screenshot1</a></p>
  <p>here in numpy shape is <code>(z-axis, y-axis, x-axis)</code></p>
  <p>But in tensorflow let we have an image of 227,227 with 3 channels(R,G,B) , so my tensor is of shape <code>(227,227,3)</code> and
  then I apply:-<br />
  <code>Conv2D(filters = 96, kernel_size = 11, strides =4, padding = 'valid')</code></p>
  <p>and we get following shape:-  <a href="https://i.stack.imgur.com/I2NzH.png" rel="nofollow noreferrer">screenshot2</a></p>
  <p>then we apply BatchNormalization:-</p>
  <pre><code>BatchNormalization(axis = 3)
  </code></pre>
  <p>this BatchNormalization will be along feature axis(i.e third axis) of the input matrix and we have input matrix of shape <code>(55,55,96)</code> from 'screenshot2',</p>
  <p><strong>So to sum up, in tensorflow we see that a 3 dimensional tensor shape is in following order- <code>(heigth, width, no_of_channels)</code> i.e. <code>(y_axis, x_axis, z_axis)</code>,
  But in numpy we have <code>(z_axis, y_axis, x_axis)</code></strong></p>
  <p>This sometimes becomes confusing to link this two ideas,
  Please tell me if I am missing some important concept ,if not then how to deal with this dimension mismatch.</p>