NeuralNetwork#

class NeuralNetwork(num_inputs, num_weights, sparse, output_shape, input_gradients=False)[source]#

Bases: ABC

Abstract Neural Network class providing forward and backward pass and handling batched inputs. This is to be implemented by other (quantum) neural networks.

Parameters:
  • num_inputs (int) -- The number of input features.

  • num_weights (int) -- The number of trainable weights.

  • sparse (bool) -- Determines whether the output is a sparse array or not.

  • output_shape (int | tuple[int, ...]) -- The shape of the output.

  • input_gradients (bool) -- Determines whether to compute gradients with respect to input data.

Raises:

QiskitMachineLearningError -- Invalid parameter values.

Attributes

input_gradients#

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

num_inputs#

Returns the number of input features.

num_weights#

Returns the number of trainable weights.

output_shape#

Returns the output shape.

sparse#

Returns whether the output is sparse or not.

Methods

backward(input_data, weights)[source]#

Backward pass of the network.

Parameters:
  • input_data (float | list[float] | ndarray | None) -- input data of the shape (num_inputs). In case of a single scalar input it is directly cast to and interpreted like a one-element array.

  • weights (float | list[float] | ndarray | None) -- trainable weights of the shape (num_weights). In case of a single scalar weight

  • array. (it is directly cast to and interpreted like a one-element) --

Returns:

The result of the neural network of the backward pass, i.e., a tuple with the gradients for input and weights of shape (output_shape, num_input) and (output_shape, num_weights), respectively.

Return type:

tuple[numpy.ndarray | qiskit_machine_learning.neural_networks.neural_network.SparseArray | None, numpy.ndarray | qiskit_machine_learning.neural_networks.neural_network.SparseArray | None]

forward(input_data, weights)[source]#

Forward pass of the network.

Parameters:
  • input_data (float | list[float] | ndarray | None) -- input data of the shape (num_inputs). In case of a single scalar input it is directly cast to and interpreted like a one-element array.

  • weights (float | list[float] | ndarray | None) -- trainable weights of the shape (num_weights). In case of a single scalar weight it is directly cast to and interpreted like a one-element array.

Returns:

The result of the neural network of the shape (output_shape).

Return type:

ndarray | SparseArray