Skip to content

ratschlab/SVGP-VAE

Repository files navigation

Scalable Gaussian Process VAE

Code for paper Scalable Gaussian Process Variational Autoencoders.

Initially forked from this cool repo.

Dependencies

  • Python >= 3.6
  • TensorFlow = 1.15
  • TensorFlow Probability = 0.8

Setup

  1. Clone or download this repo. cd yourself to it's root directory.
  2. Grab or build a working python enviromnent. Anaconda works fine.
  3. Install dependencies, using pip install -r requirements.txt
  4. Test the setup by running python BALL_experiment.py --elbo VAE

Experiments

Here we report run configurations which were used to produce results presented in the paper. For all available configurations run python --BALL_experiment.py --help or python --MNIST_experiment.py --help or python --SPRITES_experiment.py --help.

Moving ball

VAE

python BALL_experiment.py --elbo VAE

python BALL_experiment.py --elbo GPVAE_Pearce

SVGPVAE

python BALL_experiment.py --elbo SVGPVAE_Hensman --clip_qs

Rotated MNIST

CVAE

python MNIST_experiment.py --elbo CVAE

python MNIST_experiment.py --elbo GPVAE_Casale --GP_joint --ov_joint --clip_qs --opt_regime VAE-100 GP-100 --PCA

python MNIST_experiment.py --elbo SVIGP_Hensman --ip_joint --GP_joint --ov_joint --clip_qs --PCA --nr_epochs 2000

SVGPVAE

python MNIST_experiment.py --elbo SVGPVAE_Hensman --ip_joint --GP_joint --ov_joint --clip_qs --GECO --PCA

To generate other rotated MNIST datasets use generate_rotated_MNIST function in utils.py.

SPRITES dataset

To generate SPRITES dataset:

  • clone the original SPRITES repo
  • set the SPRITES repo path on line 5 in SPRITES_utils.py
  • run python SPRITES_utils.py

To run SPRITES experiment:

python SPRITES_experiment.py --elbo SVGPVAE_Hensman --ip_joint --GPLVM_joint --PCA --clip_qs --GECO --object_kernel_normalize --clip_grad

Authors

Misc

If you want to see yet another cool GP-VAE model, check out this.

About

Tensorflow implementation for the SVGP-VAE model.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages