The output shapes for convolutional layers are calculated in the following way:
Let's say that the input shape for some convolutional layer is
W - width
H - height
C - channels
Now, assume that you have only one convolutional kernel, eg. size
5x5 (width and height). That kernel will actually be of size
C is the number of channels in the input shape) because one kernel must multiply all channels in the input when it is fixed in some place of the input. As you know, for that one fixed position, you get only one output number. When you repeat this for all input positions, you get only one output feature map (ie. with shape
WxHx1 assuming that you keep the input dimensions by using padding ...).
In order to get more feature maps on the output, you need to repeat the process with new convolutional kernels (all those kernels must have the channel number equal to input shape channels). So, if you repeat this
K times, your output feature map will have dimensions
WcHxK. And the size of the kernel for that convolutional layer is said to be
You can consult the following image:
In the image, one convolutional kernel (in the image it's called "Convnet Filter") outputs one output feature map (in the image it's called "One Feature Map").
Hence, in your case, for the first convolutional layer, the size of kernel is
7x7x1x100, and the output shape is
25x64x100. For the second convolutional layer, kernel size is
5x5x100x150 and the output shape is
The above-described convolution is the "classic" convolution. There are other types of convolution, eg. Depthwise separable convolution, which use different ways of calculation. Consult A Basic Introduction to Separable Convolutions tutorial for more information about different types of convultion (it includes also descrption of "classic" convolution in the "Normal Convolution" section).