1
$\begingroup$

PyTorch documentation provided the following descriptions to the Convolution layers

nn.Conv1d              Applies a 1D convolution over an input signal composed of several input planes.

nn.Conv2d              Applies a 2D convolution over an input signal composed of several input planes.

nn.Conv3d              Applies a 3D convolution over an input signal composed of several input planes.

nn.ConvTranspose1d     Applies a 1D transposed convolution operator over an input image composed of several input planes.

nn.ConvTranspose2d     Applies a 2D transposed convolution operator over an input image composed of several input planes.

nn.ConvTranspose3d     Applies a 3D transposed convolution operator over an input image composed of several input planes.

If you observe the descriptions on the right side. Each description is of the form "Applies an operation over an input signal/image composed of several input planes." It is not just confined to Convolution layers, same phrase has been used for several other layers including pooling layers and a normalization layer.

I have doubt with the word "input planes" used here.

What is the meaning of the input plane used here? Does it refer geometrical plane or some other?

$\endgroup$
2
$\begingroup$

Yes, it is a bit misleading. What it really means is input channels, so it would be: nn.Conv2d: Applies a 2D convolution over an input signal composed of several input channels.

So, why don't just use channels instead of input planes? Well, initially the major deep learning applications were used for computer vision or image processing approaches. In CV or image processing, each one of the components of the third dimension of an image tensor is called channel, so an image $I$ would be $I:H \times W \times C$ where $C$ is the number of channels (usually: $C=3$, RGB, or $C=4$, RGBA). So using the traditional terminology the last dimension of a tensor would be called channels. However this terminology is highly coupled to image processing because it assumes the 3D tensor you are processing is an image.

On the other hand, there have been an increasing number of applications where AI is used for other kind of input data (the sensor that gathers data is no longer a camera). Me for example, I use deep learning for Radar Signals. So what happens there? I happens that the image processing terminology no longer applies and, if any, it is very prone to errors (think that channels in signals can be frequency channels, wave propagation paths...).

So going back to your original question, the pytorch guys realized that and changed the terminology to a more geometrical description (which in the end is a more abstract terminology that would suit any application). So instead of referring to the last dimension of a tensor as channels, as you can see in any research paper, they took a step forward and used the geometrical description of a tensor (which in the end can encode any kind of 3D information not only images).

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.