transposed convolution
A transposed convolution is learnable upsampling — it makes a feature map bigger instead of smaller. Where a strided convolution maps a large input to a small output, a transposed convolution runs that mapping in reverse: it spreads each input value out into a patch of the larger output, weighting by a learned kernel, and adds up the overlapping contributions. Conceptually it is the gradient (the transpose) of an ordinary convolution's operation, which is exactly where the name comes from. It lets a decoder grow a coarse, low-resolution code back up to a full-size image.
Precisely, a transposed convolution can be understood as inserting zeros between input pixels (a stride of 1/S, hence 'fractionally-strided') and then doing a normal convolution. With kernel size k, stride S, and padding P, the output size is S*(W - 1) + k - 2P, the inverse of the forward size formula — so it is the tool for doubling or quadrupling spatial dimensions. The kernel weights are learned, so unlike fixed bilinear upsampling the network learns how to fill in detail; this is why it is used in the decoders of segmentation networks (FCN), autoencoders, and the generators of GANs (DCGAN).
The notorious failure mode is checkerboard artifacts: when the kernel size is not divisible by the stride, the overlapping output patches receive uneven numbers of contributions, producing a regular grid of brighter and darker spots that is glaring in generated images. Odena et al. (2016) diagnosed this and recommended a now-standard alternative: upsample by a parameter-free method (nearest-neighbor or bilinear) and then apply an ordinary convolution ('resize-convolution'), or choose kernel sizes divisible by the stride. Either way, transposed convolution remains a core primitive whenever a network must increase spatial resolution with learnable weights.
A transposed conv with kernel 4, stride 2, padding 1 on a 16x16 input gives 2*(16-1)+4-2 = 32 — exactly doubling resolution, and kernel size 4 being divisible by stride 2 helps suppress checkerboard artifacts.
Naming pitfall: 'deconvolution' is a misnomer — a transposed convolution does not invert (undo) a convolution; it only matches its shape transformation. It shares the weight-layout/transpose relationship with convolution, not the inverse operation. Many modern codebases prefer 'resize + conv' over transposed conv precisely to avoid checkerboard artifacts.