I have a question about ConvTranspose2d.weight shape. As mentioned in the PyTorch documentation 11 the shape of ConvTranspose2d.weight tensor is as follows:
(in_channels, out_channels​, kernel_size[0], kernel_size[1])
Note that I have omitted the groups parameter in the above shape.
Now, my question is that why not its shape as follows?
(out_channels, in_channels, kernel_size[0], kernel_size[1])
My problem related to the position of (in_channels, out_channels). As in some resources the Transposed Convolution is implemented via the regular convolution, so the kernel must apply on input_channels. as a result I don’t understand why the shape of the filter (i.e., weight tensor), is mentioned as above equation.
Maybe it relates to the fact that the Transposed Convolution is a kind of inverse (or transposed version) of the regular convolution, so its filters shape is transposed, and as a result, its shape follows the above relationship.
Am I correct?