API Reference

Package Root

The root package exposes the default backend wrappers and the backend-independent estimator classes.

class qlearn.HybridClassification(model=None, backend='pennylane', transformer=None, transform_kwargs=None)

Bases: object

fit(features, labels, model=None, random_state=42, **transform_kwargs)
predict(features, **transform_kwargs)
train(features, labels, model=None, random_state=42, **transform_kwargs)
class qlearn.HybridClustering(model=None, backend='pennylane', transformer=None, transform_kwargs=None)

Bases: object

fit(data, n_clusters=0, model=None, random_state=42, **transform_kwargs)
fit_predict(data, n_clusters=0, model=None, random_state=42, **transform_kwargs)
predict(data, **transform_kwargs)
train(data, n_clusters=0, model=None, random_state=42, **transform_kwargs)
class qlearn.HybridRegression(model=None, backend='pennylane', transformer=None, transform_kwargs=None)

Bases: object

fit(features, labels, model=None, random_state=42, **transform_kwargs)
predict(features, **transform_kwargs)
train(features, labels, model=None, random_state=42, **transform_kwargs)
class qlearn.VariationalQuantumClassifier(*, backend='pennylane', vqc=None, target_encoder=None, prediction_decoder=None, probability_decoder=None, fit_kwargs=None)

Bases: _ClassMetadataMixin, BaseVariationalQuantumWrapper

decode_predictions(outputs, features=None)
default_fit_kwargs(features, labels)
default_prediction_decoder(outputs, features=None)
default_target_encoder(labels, features=None)
fit(features, labels, **kwargs)
predict_proba(features, **kwargs)
class qlearn.VariationalQuantumRegressor(*, backend='pennylane', vqc=None, target_encoder=None, prediction_decoder=None, fit_kwargs=None)

Bases: BaseVariationalQuantumWrapper

decode_predictions(outputs, features=None)
default_fit_kwargs(features, labels)
default_prediction_decoder(outputs, features=None)
default_target_encoder(labels, features=None)
fit(features, labels, **kwargs)

Default Backend Wrappers

The top-level modules resolve to the default backend, which is currently Pennylane.

class qlearn.vqc_classifier.VariationalQuantumClassifier(*, backend='pennylane', vqc=None, target_encoder=None, prediction_decoder=None, probability_decoder=None, fit_kwargs=None)

Bases: _ClassMetadataMixin, BaseVariationalQuantumWrapper

decode_predictions(outputs, features=None)
default_fit_kwargs(features, labels)
default_prediction_decoder(outputs, features=None)
default_target_encoder(labels, features=None)
fit(features, labels, **kwargs)
predict_proba(features, **kwargs)
class qlearn.vqc_regressor.VariationalQuantumRegressor(*, backend='pennylane', vqc=None, target_encoder=None, prediction_decoder=None, fit_kwargs=None)

Bases: BaseVariationalQuantumWrapper

decode_predictions(outputs, features=None)
default_fit_kwargs(features, labels)
default_prediction_decoder(outputs, features=None)
default_target_encoder(labels, features=None)
fit(features, labels, **kwargs)

These wrappers sit on top of the generic variational circuit API:

  • qlearn.vqc: default-backend VariationalQuantumCircuit

  • qlearn.vqc_classifier: automatic class encoding plus probability-based decoding

  • qlearn.vqc_regressor: automatic target scaling plus inverse-scaling at prediction time

Hybrid Estimators

class qlearn.classification.HybridClassification(model=None, backend='pennylane', transformer=None, transform_kwargs=None)

Bases: object

fit(features, labels, model=None, random_state=42, **transform_kwargs)
predict(features, **transform_kwargs)
train(features, labels, model=None, random_state=42, **transform_kwargs)
class qlearn.clustering.HybridClustering(model=None, backend='pennylane', transformer=None, transform_kwargs=None)

Bases: object

fit(data, n_clusters=0, model=None, random_state=42, **transform_kwargs)
fit_predict(data, n_clusters=0, model=None, random_state=42, **transform_kwargs)
predict(data, **transform_kwargs)
train(data, n_clusters=0, model=None, random_state=42, **transform_kwargs)
class qlearn.regression.HybridRegression(model=None, backend='pennylane', transformer=None, transform_kwargs=None)

Bases: object

fit(features, labels, model=None, random_state=42, **transform_kwargs)
predict(features, **transform_kwargs)
train(features, labels, model=None, random_state=42, **transform_kwargs)

Pennylane Backend

class qlearn.pennylane.qfm.QuantumFeatureMap

Bases: QuantumFeatureMapBase

static default_feature_map(data, qubits)
transform(data=None, feature_map=None, qubits=None, device=None, **_unused)

Transform classical features into quantum features.

class qlearn.pennylane.vqc.VariationalQuantumCircuit

Bases: VariationalQuantumCircuitBase

static default_ansatz(features, params, n_qubits)
fit(features, labels, params=None, batch_size=32, epochs=1, n_qubits=None, ansatz=None, optimizer=None, device=None, diff_method='backprop', measurement='state', measurement_wires=None, loss='fidelity', **_unused)

Train the circuit parameters.

forward(features, params, n_qubits, device, ansatz=None, measurement='state', measurement_wires=None, diff_method='backprop')
generator(features, params, n_qubits, device, ansatz=None, diff_method='backprop')
predict(features, n_qubits=None, device=None, diff_method='backprop', measurement=None, measurement_wires=None, **_unused)

Run inference with the trained circuit.

train(*args, **kwargs)

Qiskit Backend

The Qiskit VariationalQuantumCircuit is not included in the public API yet because it is not implemented.