datasets:
- cifar10
- https://www.robots.ox.ac.uk/~vgg/data/fgvc-aircraft/
GAN model trained on CIFAR10 (Airplane) and FGVC Aircraft images. The model leverages Progressive Growing with Spectral Normalization.
Try out this model here.
Training Progression
Details
The model generates 32 x 32 images of Airplanes. It is trained on an NVIDIA T4 Colab Runtime.
The Critic consists of Convolutional Layers (3x3 kernel) with strides for downsampling, and Leaky ReLU activation. The critic uses Spectral Normalization, with more details here.
The Generator uses Transposed Convolutions (2x2 kernel) with strides for upsampling, and ReLU activation. The generator uses the variant of pixel-level Local Response Normalization proposed in the Progressive Growing paper.
Spectral Normalization
Spectral Normalization is a technique suggested for training GANs in this paper.
It aims to make the Critic's (Discriminator's) outputs mathematically continuous w.r.t. the space of input images, avoiding exploding gradients.
Spectral Normalization works very well in practice to stabilize the training of the GAN, as demonstrated by the example below (comparison at equivalent points during training):
Progressive Growing
Progressive Growing of GAN resolutions is suggested to improve the Quality and Stability of GAN training, especially for higher resolution models (1024x1024).
For 32x32 images of Airplanes, even a short initial round of Progressive Growing provides significant improvement (comparison at equivalent points during training):
The generator for this model generates 4x4, 8x8, 16x16 and 32x32 images, which form the inputs for the critic. Each resolution is associated with a 'weight' (α4, α8, α16, α32), which indicate the focus on the corresponding image resolution at any given time during the training.
At the beginning of the training, α4=1, α8=0, α16=0, α32=0, with the values being α4=0, α8=0, α16=0, α32=1 towards the end.