Transposed Convolutions
Explore the concept of transposed convolutions to understand how input images can be upsampled in deep learning tasks. This lesson explains the mathematical mechanics behind transposed convolutions, their implementation in JAX using conv_transpose, and their applications in image generation and superresolution scenarios.
We'll cover the following...
As we may have inferred directly from its formula, the convolution operation leads either to a decrease or no change in the size of the output. This’s helpful in classification problems, but there are some instances where we need to go the other way.
Note: The animations to explain the convolution mechanics are used here with special thanks from Vincent Dumoulin, Francesco Visin - A guide to convolution arithmetic for deep learning [arXiv:1603.07285]
Introduction
In transposed convolution, we go the other way around, where the input image is upsampled and usually increases in size. This is often helpful in image generation using a GAN/VAE or superresolution, and so on.
We’ll continue with the following assumptions:
- The input image I (shown in blue) has the dimensions .
- The convolving kernel/filter, F has the dimensions (square kernels are the usual standard).
- The output image O (shown in green) has the dimensions