I’m currently taking a course on CNN on Coursera and in one of the programming assignments we have the following

`Z= np.zeros((m,n_H,n_W,n_C))`

which supposedly n_C would be the number of channels.

Now, the output I’m expecting from this is to be an array of m training examples with n_C slices (3 channels for an image for example) each channel composed of a 2D array of height n_H and width n_W. However, Z does not output that (it outputs 5 slices/2D arrays, each with dimensins 5x3). We see that n_C is last on the np.zeros method so in a 5x5 image with 3 channels and following the course’s logic we’d have this in order:

`Z = np.zeros((5,5,3))`

However, I would expect it to be more like:

`Z = np.zeros((3,5,5))`

since this is the piece of code that results in 3 (channels), 2D arrays of 5x5

Why should we have the order m,n_H,n_W,n_C if we’re trying to depict an image as a 3D array? Shouldn’t it be m,n_C,n_H,n_W to get m training examples with n_C channels of dimensions n_H x n_W?

Thank you