class LocalEffectiveDimension(qnn, weight_samples=1, input_samples=1)[source]

Bases: EffectiveDimension

This class computes the local effective dimension for a Qiskit NeuralNetwork following the definition used in [1].

In the local version of the algorithm the number of weight samples is limited to 1. Thus, weight_samples must be of the shape (1, qnn.num_weights).

References [1]: Abbas et al., The power of quantum neural networks. The power of QNNs.

  • qnn (NeuralNetwork) -- A Qiskit NeuralNetwork, with a specific dimension (num_weights) that will determine the shape of the Fisher Information Matrix (num_input_samples * num_weight_samples, num_weights, num_weights) used to compute the global effective dimension for a set of input_samples, of shape (num_input_samples, qnn_input_size), and weight_samples, of shape (num_weight_samples, num_weights).

  • weight_samples (ndarray | int) -- An array of neural network parameters (weights), of shape (num_weight_samples, num_weights), or an int to indicate the number of parameter sets to sample randomly from a uniform distribution. By default, weight_samples = 1.

  • input_samples (ndarray | int) -- An array of samples to the neural network, of shape (num_input_samples, qnn_input_size), or an int to indicate the number of input sets to sample randomly from a normal distribution. By default, input_samples = 1.



Returns network input samples.


Returns network parameters.



This method computes the effective dimension for a dataset of size dataset_size.

get_fisher_information(gradients, model_outputs)

This method computes the average Jacobian for every set of gradients and model output as shown in Abbas et al.


This method computes the normalized Fisher Information Matrix and extracts its trace.


This method computes the model's Monte Carlo sampling for a set of input samples and weight samples.