- class QGAN(data, bounds=None, num_qubits=None, batch_size=500, num_epochs=3000, seed=7, discriminator=None, generator=None, tol_rel_ent=None, snapshot_dir=None, quantum_instance=None)¶
The Quantum Generative Adversarial Network algorithm.
The qGAN  is a hybrid quantum-classical algorithm used for generative modeling tasks.
This adaptive algorithm uses the interplay of a generative
GenerativeNetworkand a discriminative
DiscriminativeNetworknetwork to learn the probability distribution underlying given training data.
These networks are trained in alternating optimization steps, where the discriminator tries to differentiate between training data samples and data samples from the generator and the generator aims at generating samples which the discriminator classifies as training data samples. Eventually, the quantum generator learns the training data's underlying probability distribution. The trained quantum generator loads a quantum state which is a model of the target distribution.
-  Zoufal et al.,
int) -- Batch size, has a min. value of 1.
int) -- Number of training epochs
int) -- Random number seed
QiskitMachineLearningError -- invalid input
Returns discriminator loss
Returns generator loss
Returns quantum instance.
Return a numpy random.
Returns relative entropy between target and trained distribution
Returns random seed
Returns tolerance for relative entropy
Get relative entropy between target and trained distribution
Execute the algorithm with selected backend.
Sets backend with configuration.
Train the qGAN