Transposed convolution is a convolution-like operation formed by multiplying with the transpose of a convolution matrix. It performs a kind of upsampling: a lower-dimensional output is distributed back across a larger array in the same proportions used during forward convolution. It is not an inverse, because the forward convolution may discard information when a non-invertible matrix maps more independent inputs to fewer outputs. section 10.5
The operation connects mathematical structure with neural-network reconstruction:
- For a 1D convolution, multiplying by the transposed weight matrix distributes output values back to input positions, resembling proportional blame distribution in backpropagation. section 10.5
- In an autoencoder, convolution and pooling layers encode a high-resolution input into a smaller embedding; decoder layers use transposed convolutions to reconstruct an output with the original scale. section 10.5.1 section 10.5.3
- Unlike nearest-neighbor, bilinear, or bicubic interpolation, transposed convolution learns the mapping during training, distributing values to minimize reconstruction error. section 10.5.3
Output size and a 2D implementation
The transposed-convolution output size follows o′ = (n′ − 1)s + k − 2p. With input size n′ = 3, stride s = 1, kernel size k = 3, and valid padding p = 0, the output size is 5. In two dimensions, a 1 × 1 × 2 × 2 input, a 1 × 1 × 2 × 2 kernel, and stride 2 produce a 1 × 1 × 4 × 4 output. PyTorch implements this with ConvTranspose2d; the demonstrated code fixes the kernel weights and applies it without gradient tracking. section 10.5.2 section 10.5.3
Figure 10.16 1D convolution and its transpose
Use the 1D comparison to inspect how convolution and its transpose distribute values. section 10.5




