Convolutional GANs are a very successful variation of GANs. They contain convolution layers in both the generator and discriminator networks. In this recipe, we will implement a deep convolutional generative adversarial network (DCGAN). This is an improvement over vanilla GANs because of its stable architecture. There are some standard guidelines that, when followed, result in the robust performance of DCGAN.
They are as follows:
- Replace pooling layers with convolutional strides in the discriminator and use transpose convolutions in the generator network.
- Use batch normalization in the generator and discriminator, except for the output layer.
- Do not use fully connected hidden layers.
- Use ReLU in the generator, except for the output layer, which uses tanh.
- Use Leaky ReLU in the discriminator.