Quantum VAEs for Calorimeter shower generation
- ...
Directory | Content |
---|---|
configs/ |
Configuration files |
data/ |
Data manager and loader |
engine/ |
Training loops. |
models/ |
Core module, includes definitions of all models. |
notebooks/ |
Standalone experimentation notebooks. |
paper/ |
Notebook to generate figures reported in CaloDVAE |
sandbox/ |
Collection of test scripts and standalone models. |
scripts/ |
Steering scripts includes one to run - run.py |
utils/ |
Helper functionalities for core modules (plotting etc.) |
Dataset | Location |
---|---|
MNIST | retrieved through torchvision |
Calorimeter Data (GEANT4 showers, ⟂ to center) |
git clone git@github.com:QaloSim/CaloQVAE.git
cd CaloQVAE
Initial package setup:
python3 -m venv venv_divae
source source.me
python3 -m pip install -r requirements.txt
After the initial setup, simply navigate to the package directory and run
source source.me
Sources the virtual environment and appends to PYTHONPATH
.
We're currently using Hydra for config management. The top-level file is config.yaml
. For more info on Hydra, click here
python scripts/run.py
It is possible to run on computing clusters with the Slrum submission engine. Hydra has a built-in plugin interfacing the library submitit
. It is important to use these dependencies:
hydra-core==1.1.0
hydra-submitit-launcher==1.1.5
submitit @ https://github.com/facebookincubator/submitit/archive/refs/tags/1.3.0.tar.gz
as the default PyPI version does not work on Cedar. A first script is added in the scripts/
directory and a great starting point. To utitlise the batch submission, simply add the --multirun
flag to your command line and specify which parameter to loop over like so:
python scripts/runSlurm.py --multirun config.myopt=1,2
[1] Jason Rolfe, Discrete Variational Autoencoders, http://arxiv.org/abs/1609.02200
[2] M. Paganini (@mickypaganini), L. de Oliveira (@lukedeo), B. Nachman (@bnachman), CaloGAN: Simulating 3D High Energy Particle Showers in Multi-Layer Electromagnetic Calorimeters with Generative Adversarial Networks [arXiv:1705.02355
].