Q:

Does the number of dimensions increase with every convolution in ConvNets?

I am a very beginner at CNN's and I am trying to understand the concept of deep convolutional networks.
I understand that I have to slide my filters over the input image and what I get is an image array. Afterwards I apply ReLU and max-pooling, which leaves me still with an array of images. However, I do not understand what to do when I want to apply another set of filters. Before I had 1 image, which turned into an array of images, but now I have an array of images. Does that mean I will get an array of arrays of images? A 2D array, which is actually 4D because it is a 2D array of 2D arrays - images? And what happens on the next layers? Will there be 5 dimensions? and 6?
Also, can you recommend a good written tutorial (not video) for beginners? Ideally if it has examples for Java.
Any help would be appreciated.

A:

I think you are missing that convolutions work on images including their depth.
If the input image is an RGB image, its depth is 3 and also the depth of the convolutional filters in the first layer is 3. When you slide these 3D filters over your 3D image, you get an array of 2D images as you say. But if you stack these output images along the third dimension, you get a 3D image again. Now it will not have a depth of 3 but the depth will equal the number of the filters you used. So in the second (and any next) layer you get a 3D image as an input and you output a 3D image as well. The depth of the image will vary depending on the number of the filters in the given layer. The depth of the filters must match the depth of the corresponding input image.
You do not say which machine learning toolkit you use but there is one for Java called deeplearning4j. You can find more detailed information in its tutorial on CNNs.

