Skip to content
Go to file

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

#Generative Moment Matching Networks (GMMNs) This is the code we used for the following paper:

  • Yujia Li, Kevin Swersky, Richard Zemel. Generative moment matching networks. In International Conference on Machine Learning (ICML), 2015.

If you use this code in your research you should cite the above paper.


To use the code you need to install some dependencies first:

  • Standard python packages like numpy, scipy, matplotlib. matplotlib is only needed for visualization. You may also need sklearn for some features.
  • gnumpy. If you have a NVIDIA GPU gnumpy can speed up your computation significantly. To use GPUs you need to install cudamat first. If you don't have a GPU you can use npmat as a replacement for cudamat, then all computations will be done on a CPU.
  • The authors' lightweight neural network and optimization packages pynn and pyopt.

Once you get all dependencies ready, try to run python If you are running this with npmat then all tests should pass. If you are running this on a GPU with cudamat then some tests will fail - this is expected because of the low numeric precision supported by cudamat (float32 every where), but all tests should run and finish properly.

Prepare data

Prepare the MNIST and TFD data, then go into the dataio directory, change paths to the datasets in and

Train the models

Use python -m <mode> to train the corresponding model. <mode> can be mnistinput, mnistcode, tfdinput, tfdcode, corresponding to the input space model and autoencoder code space model for the two datasets.

Other resources

There is a tensorflow implementation of GMMN provided by Siddharth Agrawal:


Generative moment matching networks



No releases published


No packages published


You can’t perform that action at this time.