Source code for Gaussian Process Bandit Optimization of the Thermodynamic Variational Objective at NeurIPS 2020
This uses Sacred's command line interface. To see Sacred's options run
python run.py --help
To see tunable hyperparameters
python run.py print_config
which can be set using with
:
python main.py with learning_task='continuous_vae' loss=tvo schedule='gp_bandit' S=50 K=5 epochs=1000
To save data to the filesystem, add a Sacred FileStorageObserver
python main.py with learning_task='continuous_vae' loss=tvo schedule='gp_bandit' S=50 K=5 epochs=1000 -F ./runs
The TVO loss is computed in get_thermo_loss_from_log_weight_log_p_log_q
in losses.py
. This function is identical to the one found in the discrete_vae directory.
The main training loop is in train
in run.py
.
This package is inspired and extended from https://github.com/vmasrani/tvo
Vu Nguyen, Vaden Masrani, Rob Brekelmans, Michael A. Osborne, Frank Wood. "Gaussian Process Bandit Optimization of the Thermodynamic Variational Objective." Advances in Neural Information Processing Systems (NeurIPS), 2020.