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[ndarray | SparseArray | None, ndarray | 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