Applications / AI / Quantum for AI
QGAN and synthetic data
Adversarial generation against a learning discriminator
A QGAN is a generative adversarial network whose generator is a quantum circuit rather than a neural network. A classical discriminator learns to separate the circuit's samples from the target while the circuit learns to fool it, and the two alternate. The discriminator half is ordinary PyTorch and runs where your other models run; only the generator is submitted as circuits.
Two quantities are tracked because either alone can mislead. The discriminator gap says whether the discriminator can still tell the two apart, and it shrinks both when the generator improves and when the discriminator collapses. The total variation distance to the target says whether the generated distribution actually moved. Both are reported.
Run on our engines
A two-qubit generator of four rotations against a two-layer classical discriminator, 40 alternating steps, targeting 0.4 / 0.1 / 0.1 / 0.4. Submitted to each kind of compute we offer, on 18 September 2026. Every figure below is a real job on the service, priced as any customer would be priced.
| Device | Engine | Kind | Qubits | Result | Cost |
|---|---|---|---|---|---|
| exact.cpu | CPU | 2 | TVD 0.269 to 0.146, discriminator gap 0.0069 to -0.0006 | $0.0722 | |
![]() | qpu.rigetti | QPU | 2 | TVD 0.286, the converged generator re-run at 1,000 shots | $0.7250 |
| photonic.slos.cpu | CPU | 3 | generator half, P(target) 0.993, 0.835, 0.802, 0.754 and 0.085 across five starts | $0.0003 | |
![]() | qpu.quandela.belenos | QPU | — | takes the identical linear-optics program and input state; the simulator row above is the exact reference a run here is certified against | — |
The same problem is yours to run: every instance here is seeded, so it rebuilds exactly. Open the console and a cost estimate is free before anything executes.
722 circuits over 40 alternating steps. The generated distribution ended at 0.408 on 00, 0.238 on 01, 0.000 on 10 and 0.354 on 11, against a target of 0.4 / 0.1 / 0.1 / 0.4: the two large modes were found, and of the two symmetric minority outcomes one took 0.238 and the other took nothing.
The photonic row is a separate experiment on the same shape, run on a linear-optics simulator across five random starts. Four reached 0.75 or better against a ceiling of 0.9996 and the fifth stopped at 0.085.
Where this stops
- Mode collapse onto one of several equivalent outcomes is an ordinary GAN failure and is visible in the measured distribution above
- One start in five stuck on the photonic leg, so a single run is not evidence of convergence and several seeds are needed
- Dual-rail encoding spends two modes per qubit, so a 24-mode photonic register is 12 qubits and the feature space a photonic generator can reach is correspondingly small
The classical baseline for this case is the discriminator gap, which starts at 0.0069. The structural limit, which does not move when a benchmark is re-run, is Mode collapse onto a subset of outcomes, the same failure mode as a classical GAN.
Run it yourself
Every figure above is from a job billed on the production service. Load the same circuits into the console, change the instance to your own data, and export a certificate for your own run rather than citing ours.
The argument behind these numbers, at length: Quantum machine learning on simulators and real quantum hardware.
Other AI use cases
QCBM and quantum generative models
Sampling from a distribution learned from scratch
QCBM against its own untrained start
Quantum AI image generation
Writing an image into a circuit and reading it back
Patch GAN and NTQIP, both on Rigetti
Quantum RL and control policies
Choosing an action from an observed state
Variational quantum policy trained by REINFORCE

