An unofficial Torch implementation of InfoGAN
Lua Shell
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

InfoGAN for Torch

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

Generated MNIST digits varying c_1

Generated MNIST digits varying c_2


  • 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



Begin by cloning this repository.

git clone
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 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

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.