This is an unofficial Torch implementation of the InfoGAN neural network architecture proposed by Chen et al in their paper "InfoGAN: Interpretable Representation Learning by Information Maximizing Generative Adversarial Nets". The original TensorFlow implementation can be found at https://github.com/openai/InfoGAN.
- Implement the InfoGAN network architecture
- Use variational mutual information maximization for the error calculations (as per the paper)
- CLI options for tweaking noise inputs and salient variables
- Deterministic training
- A cuDNN 5 capable NVIDIA graphics card
- nvidia-docker
Begin by cloning this repository.
git clone https://github.com/anibali/infogan
cd infogan
NOTE: If you are using a Pascal architecture GPU (CUDA 8.0), you will need to modify the Dockerfile to build from a CUDA 8.0 base image. Refer to #5 for more details. Please make this change before proceeding.
Build the Docker image which contains Torch and all other required dependencies.
nvidia-docker build -t infogan-torch .
Download the MNIST dataset.
nvidia-docker run -it --rm --volume=$PWD:/app infogan-torch sh download_mnist.sh
Finally, run the training script.
nvidia-docker run -it --rm --volume=$PWD:/app infogan-torch th bin/train_infogan.lua
Output artifacts will appear in the out/
directory during training, including
examples of fake images generated by the generator network and serialized copies
of the generator and discriminator networks.