OBPMétadonnées
class OBPMetadata(truncation_error_budget, num_slices, operator_budget, backpropagation_history, num_backpropagated_slices)
Bases : object
Un conteneur pour les métadonnées générées au cours de la méthode backpropagate() .
Attributs
Paramètres
- truncation_error_budget (TruncationErrorBudget)
- num_slices (int | None)
- operator_budget (OperatorBudget)
- backpropagation_history (list[SliceMetadata])
- num_backpropagated_slices (int)
truncation_error_budget
Type : TruncationErrorBudget
Valeurs spécifiant la stratégie de troncature des observables.
num_slices
operator_budget
Type : OperatorBudget
Valeurs spécifiant la taille de l'opérateur.
backpropagation_history
Type : list[SliceMetadata]
Une séquence d'objets de métadonnées pour suivre la progression de la rétropropagation.
num_backpropagated_slices
Type : int
Le nombre de tranches rétropropagées.
Cette valeur peut être différente de len(backpropagation_history) dans les cas où un critère d'arrêt tel que operator_budget.max_paulis ou operator_budget.max_qwc_groups a entraîné la fin de la rétropropagation. Ensuite, cette valeur doit être égale à len(backpropagation_history) - 1 car la dernière tranche a provoqué le dépassement des seuils. Toutefois, pour des raisons de commodité, ces valeurs sont toujours enregistrées pour que l'utilisateur final puisse les inspecter.
Méthodes
accumulated_error
accumulated_error(observable_idx, slice_idx=None)
Calculer l'erreur cumulée pour une observable donnée à un "moment" donné.
Cette méthode calcule l'erreur cumulée pour un indice observable donné à un "moment" donné au cours de la rétropropagation. Dans ce contexte, le "temps" doit être compris comme les étapes discrètes des tranches déjà rétropropagées.
L'erreur cumulée est calculée comme la somme des erreurs individuelles SliceMetadata.slice_errors. Celles-ci peuvent à leur tour être calculées dans un. spécifié TruncationErrorBudget.p_norm. Ainsi, l'erreur cumulée calculée constitue une borne supérieure de l'erreur cumulée réelle, comme le montre l' inégalité de Minkowski (généralisation de l'inégalité triangulaire aux normes Lp autres que p=2).
Puisqu'une norme Lp générale (autre que p=2 ) n'est pas une norme de produit scalaire, elle ne satisfait pas la loi du parallélogramme. Par conséquent, nous devons utiliser l'inégalité de Minkowski comme limite supérieure de l'erreur accumulée.
Paramètres
- observable_idx (int) – l'indice de l'observable dont l'erreur cumulée doit être calculée.
- slice_idx (int | None) – l'indice de la tranche (le pas de temps discret) jusqu'à laquelle calculer l'erreur cumulée. S'il s'agit de
None, il passera par défaut àself.num_backpropagated_slices, ce qui équivaut à calculer l'erreur cumulée d'une observable au dernier point dans le temps qui n'a pas dépassé les critères d'arrêt de l'algorithme
Retours
L'erreur cumulée calculée selon les explications ci-dessus.
Type de retour
from_json
classmethod from_json(json_file)
Charge une métadonnée à partir d'un fichier json.
Paramètres
json_file (str) – le chemin d'accès au fichier à charger.
Retours
Les métadonnées chargées.
Type de retour
left_over_error_budget
left_over_error_budget(observable_idx, slice_idx=None)
Calculer le budget d'erreur résiduelle pour une observable donnée à un "moment" donné.
Cette méthode calcule le budget d'erreur restant pour un indice observable donné à un "moment" donné au cours de la rétropropagation. Dans ce contexte, le "temps" doit être compris comme les étapes discrètes des tranches déjà rétropropagées.
Le budget d'erreur résiduel est calculé comme étant le solde du budget total moins la somme des budgets individuels SliceMetadata.slice_errors. Celles-ci peuvent à leur tour être calculées dans un. spécifié TruncationErrorBudget.p_norm.
Voir également les explications dans accumulated_error() pour plus de détails sur la manière dont les erreurs des différentes tranches sont additionnées pour former une limite supérieure à l'erreur réelle via l'inégalité de Minkowski.
Le budget d'erreur restant est relatif à la valeur de self.truncation_error_budget.max_error_total qui peut être numpy.inf , auquel cas la valeur renvoyée par cette méthode sera également numpy.inf.
Paramètres
- observable_idx (int) – l'indice de l'observable dont le budget des erreurs résiduelles doit être calculé.
- slice_idx (int | None) – l'indice de la tranche (le pas de temps discret) jusqu'à laquelle calculer le budget d'erreur restant. S'il s'agit de
None, il passera par défaut àself.num_backpropagated_slices, ce qui revient à calculer le budget d'erreur restant d'une observable au dernier point dans le temps qui n'a dépassé aucun critère d'arrêt dans l'algorithme
Retours
Le budget des erreurs restantes est calculé selon les explications ci-dessus.
Type de retour