Quantum Generative Adversarial Networks
Project repository for the 2023 GSoC project Quantum Generative Adversarial Networks for HEP event generation the LHC with the ML4SCI organization. For more information see also the blog post.
I thank the ML4SCI QML group for the support and collaboration and NERSC for the access to perlmutter for training.
Currently the main code for training and evaluating the QGANs is located in the notebooks folder. There are different notebooks for
- Fully quantum GAN (SWAP test)
- Hybrid QGAN (classical discriminator)
- CV QGAN (Modeling continous PDFs by data embedding and expecation value measurement)
The notebooks can be run after installing the requirements.txt
.
Alternatively, since I have been performing some training on NERSCs perlmutter, I provide a docker image for GPU execution under tommago
/
culane.
It is based on NVIDIAs cuQuantum appliance and can be used for simple GPU execution by enabling
dev = qml.device('lightning.gpu', wires=9)
In principle the appliance also works for multi gpu, however the scaling for smaller number of qubits is not very good (See this blog post). It would be helpful to have a multi GPU implementation with MPI which parallelizes the circuit executions within in single batch.