vc.variational_classifier module

This module implements a scikit-learn compatible, variational quantum classifier.

Usage:

vc = VariationalClassifier()
vc = vc.fit(X_training, y_training, n_iter=60)
predictions = vc.predict(X_validation)
class vc.variational_classifier.VariationalClassifier(batch_size=5, backend=None, model=None, optimizer=None, use_bias=False, random_init=True, warm_init=False, random_state=None)[source]

Bases: ClassifierMixin, BaseEstimator

Variational classifier.

__init__(batch_size=5, backend=None, model=None, optimizer=None, use_bias=False, random_init=True, warm_init=False, random_state=None)[source]

Init VariationalClassifier.

The default values for backend, model, and optimizer are defined in vc.variational_classifier.get_default_if_none().

Parameters:
  • batch_size (int) – batch size to be used during fitting.

  • backend (Optional[Dict[str, Any]]) – see docstring of get_model().

  • model (Optional[Dict[str, Any]]) – see docstring of get_model().

  • optimizer (Optional[Dict[str, Any]]) – see docstring of get_optimizer()

  • use_bias (bool) – set to True if a bias parameter should be optimized over.

  • random_init (bool) – set to True if parameters to optimize over should be initialized randomly.

  • warm_init (bool) – set to True if parameters from a previous call to fit should be used.

  • random_state (Optional[int]) – random seed for repeatability.

fit(X, y, n_iter=1)[source]

Fit data using a quantum model.

Parameters:
  • X (ArrayLike) – training data with shape (n_samples, n_features).

  • y (ArrayLike) – target values with shape (n_samples,).

  • n_iter (int) – number of training iterations.

Return type:

VariationalClassifier

predict(X)[source]

Predict class using a quantum model.

Parameters:

X (ArrayLike) – input data with shape (n_samples n_features).

Return type:

ndarray[Any, dtype[Any]]

Returns:

The predicted classes with shape (n_samples, n_classes).

vc.variational_classifier.get_default_if_none(backend=None, model=None, optimizer=None)[source]

Set default value if the one provided is None.

Parameters:
  • backend (Optional[Dict[str, Any]]) – see docstring of get_model(). default value {"name": "default.qubit", "options": {}}.

  • model (Optional[Dict[str, Any]]) – see docstring of get_model() default value {"name": "modulo_model", "options": {"n_layers": 2, "n_trainable_sublayers": 2, "scaling": 0.5}}.

  • optimizer (Optional[Dict[str, Any]]) – see docstring of get_optimizer() default value {"name": "adam", "options": {}}.

Return type:

Tuple[Dict[str, Any], Dict[str, Any], Dict[str, Any]]

Returns:

Default backend, model, optimizer.