Russian
Языки
English
Bengali
French
Hindi
Japanese
Korean
Russian
Spanish
Tamil
Turkish



EstimatorQNN

class EstimatorQNN(*, circuit, estimator=None, observables=None, input_params=None, weight_params=None, gradient=None, input_gradients=False)[исходный код]

Базовые классы: NeuralNetwork

A neural network implementation based on the Estimator primitive.

The EstimatorQNN is a neural network that takes in a parametrized quantum circuit with designated parameters for input data and/or weights, an optional observable(s) and outputs their expectation value(s). Quite often, a combined quantum circuit is used. Such a circuit is built from two circuits: a feature map, it provides input parameters for the network, and an ansatz (weight parameters).

Example:

from qiskit import QuantumCircuit
from qiskit.circuit.library import ZZFeatureMap, RealAmplitudes

from qiskit_machine_learning.neural_networks import EstimatorQNN

num_qubits = 2
feature_map = ZZFeatureMap(feature_dimension=num_qubits)
ansatz = RealAmplitudes(num_qubits=num_qubits, reps=1)

qc = QuantumCircuit(num_qubits)
qc.compose(feature_map, inplace=True)
qc.compose(ansatz, inplace=True)

qnn = EstimatorQNN(
    circuit=qc,
    input_params=feature_map.parameters,
    weight_params=ansatz.parameters
)

qnn.forward(input_data=[1, 2], weights=[1, 2, 3, 4])

The following attributes can be set via the constructor but can also be read and updated once the EstimatorQNN object has been constructed.

estimator

The estimator primitive used to compute the neural network’s results.

Type:

BaseEstimator

gradient

The estimator gradient to be used for the backward pass.

Type:

BaseEstimatorGradient

Параметры:
  • estimator (BaseEstimator | None) – The estimator used to compute neural network’s results. If None, a default instance of the reference estimator, Estimator, will be used.

  • circuit (QuantumCircuit) – The quantum circuit to represent the neural network.

  • observables (Sequence[BaseOperator | PauliSumOp] | BaseOperator | PauliSumOp | None) – The observables for outputs of the neural network. If None, use the default \(Z^{\otimes num\_qubits}\) observable.

  • input_params (Sequence[Parameter] | None) – The parameters that correspond to the input data of the network. If None, the input data is not bound to any parameters.

  • weight_params (Sequence[Parameter] | None) – The parameters that correspond to the trainable weights. If None, the weights are not bound to any parameters.

  • gradient (BaseEstimatorGradient | None) – The estimator gradient to be used for the backward pass. If None, a default instance of the estimator gradient, ParamShiftEstimatorGradient, will be used.

  • input_gradients (bool) – Determines whether to compute gradients with respect to input data. Note that this parameter is False by default, and must be explicitly set to True for a proper gradient computation when using TorchConnector.

Исключение:

QiskitMachineLearningError – Invalid parameter values.

Attributes

circuit

The quantum circuit representing the neural network.

input_gradients

Returns whether gradients with respect to input data are computed by this neural network in the backward method or not.

input_params

The parameters that correspond to the input data of the network.

num_inputs

Returns the number of input features.

num_weights

Returns the number of trainable weights.

observables

Returns the underlying observables of this QNN.

output_shape

Returns the output shape.

sparse

Returns whether the output is sparse or not.

weight_params

The parameters that correspond to the trainable weights.

Methods

backward(input_data, weights)

Backward pass of the network.

forward(input_data, weights)

Forward pass of the network.