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

Bases: object

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

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 weight samples.



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.