Code for paper Scalable Gaussian Process Variational Autoencoders.
Initially forked from this cool repo.
- Python >= 3.6
- TensorFlow = 1.15
- TensorFlow Probability = 0.8
- 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
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
.
python BALL_experiment.py --elbo VAE
python BALL_experiment.py --elbo GPVAE_Pearce
python BALL_experiment.py --elbo SVGPVAE_Hensman --clip_qs
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
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
.
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
- Metod Jazbec ([email protected])
If you want to see yet another cool GP-VAE model, check out this.