pyriemann_qiskit.classification.QuanticVQC

class pyriemann_qiskit.classification.QuanticVQC(optimizer=<qiskit_algorithms.optimizers.spsa.SPSA object>, gen_var_form=<function gen_two_local.<locals>.<lambda>>, quantum=True, q_account_token=None, verbose=True, shots=1024, gen_feature_map=<function gen_zz_feature_map.<locals>.<lambda>>, seed=None)[source]

Variational quantum classifier

This class implements a variational quantum classifier (VQC). Note that there is no classical version of this algorithm. This will always run on a quantum computer (simulated or not).

Parameters:
  • optimizer (Optimizer, default=SPSA) – The classical optimizer to use. See [3] for details.

  • gen_var_form (Callable[int, QuantumCircuit | VariationalForm], default=Callable[int, TwoLocal]) – Function generating a variational form instance.

  • quantum (bool, default=True) –

    • If true will run on local or remote backend (depending on q_account_token value).

    • If false, will perform classical computing instead.

  • q_account_token (string | None, default=None) – If quantum is True and q_account_token provided, the classification task will be running on a IBM quantum backend. If load_account is provided, the classifier will use the previous token saved with IBMProvider.save_account().

  • verbose (bool, default=True) – If true, will output all intermediate results and logs

  • shots (int, default=1024) – Number of repetitions of each circuit, for sampling

  • gen_feature_map (Callable[[int, str], QuantumCircuit | FeatureMap], default=Callable[int, ZZFeatureMap]) – Function generating a feature map to encode data into a quantum state.

  • seed (int | None, default=None) – Random seed for the simulation.

evaluated_values_

Training curve values.

Type:

list[int]

Notes

Added in version 0.0.1.

Changed in version 0.1.0: Fix: copy estimator not keeping base class parameters. Added support for multi-class classification.

Changed in version 0.2.0: Add seed parameter

Changed in version 0.3.0: Add evaluated_values_ attribute.

Changed in version 0.6.0: Pass pass_manager to VQC for Qiskit 2.x transpilation. Moved to pyriemann_qiskit.classification.wrappers.quantic_vqc.

Raises:

ValueError – Raised if quantum is False

References

[1]

H. Abraham et al., Qiskit: An Open-source Framework for Quantum Computing. Zenodo, 2019. doi: 10.5281/zenodo.2562110.

[2]

V. Havlíček et al., ‘Supervised learning with quantum-enhanced feature spaces’, Nature, vol. 567, no. 7747, pp. 209–212, Mar. 2019, doi: 10.1038/s41586-019-0980-2.

__init__(optimizer=<qiskit_algorithms.optimizers.spsa.SPSA object>, gen_var_form=<function gen_two_local.<locals>.<lambda>>, quantum=True, q_account_token=None, verbose=True, shots=1024, gen_feature_map=<function gen_zz_feature_map.<locals>.<lambda>>, seed=None)[source]

Examples using pyriemann_qiskit.classification.QuanticVQC

Plot training curve of VQC and MDM with SPSA

Plot training curve of VQC and MDM with SPSA

Art visualization of Variational Quantum Classifier.

Art visualization of Variational Quantum Classifier.