This repository contains the source code used to produce the results of Part 1 of the master thesis: ``Population-Level Density Estimation Using Normalizing Flows and Hyper Posteriors".
To install the environment run:
conda env create -f environment.yml
To use the wandb logger, also install wandb:
pip install wandb==0.13.5
To run the experiments, use the main.py script. For example, to train a normalizing flow on the 2D simulators using affine autoregressive normalizing flows, run:
python main.py --problem 2d --loss-function marginal --model naive --marginal affine-autoregressive --device cuda --problem2d-marginal mixture --marginal-layers 12
To run multiple experiments, use the batch_run.py script. For example, to train a normalizing flow on the 2D simulators using affine autoregressive normalizing flows, run:
python batch_run.py --run_file runfiles/example_runfile.md
The following files are included in this repository:
batch_run.py: A script to submit multiple experiment runs to a cluster.main.py: The main file to run the experiments.training.py: The training procedures and loss functions.marginals.py: The model definitions.problems.py: The simulator definitions.roc_auc.py: The ROC AUC metric.utils.py: Utility functions.extra_dists.py: Extra distributions for various purposes.get_plots.py: A script to generate the plots from the paper (you need to train your own models).plot_marginals.ipynb: A notebook to plot the marginals of the simulators.environment.yml: The conda environment file.