SVGP-VAE
SVGP-VAE copied to clipboard
Tensorflow implementation for the SVGP-VAE model.
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
- Clone or download this repo.
cd
yourself to it's root directory. - Grab or build a working python enviromnent. Anaconda works fine.
- Install dependencies, using
pip install -r requirements.txt
- 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
GPVAE_Pearce
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
GPVAE_Casale
python MNIST_experiment.py --elbo GPVAE_Casale --GP_joint --ov_joint --clip_qs --opt_regime VAE-100 GP-100 --PCA
SVIGP
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
- Metod Jazbec ([email protected])
Misc
If you want to see yet another cool GP-VAE model, check out this.