Skip to main content
IBM Quantum Platform

Metadados OBPMetadata

class OBPMetadata(truncation_error_budget, num_slices, operator_budget, backpropagation_history, num_backpropagated_slices)

GitHub

Bases: object

Um contêiner para metadados gerados durante o método backpropagate() .


Atributos

Parâmetros

truncation_error_budget

Tipo: TruncationErrorBudget

Valores que especificam a estratégia de truncamento observável.

num_slices

Tipo: int | None

O número total de fatias para tentar retropropagar.

operator_budget

Tipo: OperatorBudget

Valores que especificam o tamanho que o operador pode crescer.

backpropagation_history

Tipo: list[SliceMetadata]

Uma sequência de objetos de metadados para rastrear a progressão da retropropagação.

num_backpropagated_slices

Tipo: int

O número de fatias retropropagadas.

Nota

Esse valor pode ser diferente de len(backpropagation_history) nos casos em que um critério de parada, como operator_budget.max_paulis ou operator_budget.max_qwc_groups , fez com que a retropropagação fosse encerrada. Então, esse valor deve ser igual a len(backpropagation_history) - 1 porque a última fatia fez com que os limites fossem excedidos. No entanto, por conveniência, esses valores ainda são registrados para que o usuário final possa inspecioná-los.


Métodos

accumulated_error

accumulated_error(observable_idx, slice_idx=None)

GitHub

Calcule o erro acumulado para um determinado observável em um determinado "tempo".

Esse método calcula o erro acumulado para um determinado índice observável em um determinado "momento" durante o curso da retropropagação. Nesse contexto, "tempo" deve ser entendido como as etapas discretas de fatias já retropropagadas.

O erro acumulado é calculado como a soma dos erros individuais SliceMetadata.slice_errors. Esses, por sua vez, podem ser calculados dentro de um TruncationErrorBudget.p_norm. Assim, o erro acumulado calculado é um limite superior do erro acumulado real, conforme determinado pela desigualdade de Minkowski (a generalização da desigualdade do triângulo para normas Lp diferentes de p=2).

Nota

Como uma norma Lp geral (diferente de p=2) não é uma norma de produto interno, ela não satisfaz a lei do paralelogramo. Portanto, devemos usar a desigualdade de Minkowski como o limite superior do erro acumulado.

Parâmetros

  • observable_idx (int) – o índice do observável cujo erro acumulado deve ser computado.
  • slice_idx (int | None) – o índice da fatia (a etapa discreta de "tempo") até a qual será computado o erro acumulado. Se for None, o padrão será self.num_backpropagated_slices , o que equivale a calcular o erro acumulado de um observável no último ponto no tempo que não tenha ultrapassado nenhum critério de parada no algoritmo

Retorna

O erro acumulado calculado de acordo com as explicações acima.

Tipo de retorno

Valor flutuante

from_json

classmethod from_json(json_file)

GitHub

Carregar metadados de um arquivo json.

Parâmetros

json_file (str) – o caminho para o arquivo a ser carregado.

Retorna

Os metadados carregados.

Tipo de retorno

OBPMetadados

left_over_error_budget

left_over_error_budget(observable_idx, slice_idx=None)

GitHub

Calcule o orçamento de erros remanescentes para um determinado observável em um determinado "momento".

Esse método calcula o orçamento de erro restante para um determinado índice observável em um determinado "momento" durante o curso da retropropagação. Nesse contexto, "tempo" deve ser entendido como as etapas discretas de fatias já retropropagadas.

O orçamento de erro remanescente é calculado como o saldo do orçamento total menos a soma dos orçamentos individuais SliceMetadata.slice_errors. Esses, por sua vez, podem ser calculados dentro de um TruncationErrorBudget.p_norm.

Nota

Consulte também as explicações em accumulated_error() para obter mais detalhes sobre como os erros individuais das fatias são somados para formar um limite superior para o erro real por meio da desigualdade de Minkowski.

Nota

O orçamento de erro restante é relativo ao valor de self.truncation_error_budget.max_error_total , que pode ser numpy.inf e, nesse caso, o valor retornado desse método também será numpy.inf.

Parâmetros

  • observable_idx (int) – o índice do observável cujo orçamento de erro residual deve ser computado.
  • slice_idx (int | None) – o índice da fatia (a etapa discreta de "tempo") até a qual será computado o orçamento de erro restante. Se for None, o padrão será self.num_backpropagated_slices , o que equivale a calcular o orçamento de erro restante de um observável no último ponto no tempo que não tenha ultrapassado nenhum critério de parada no algoritmo

Retorna

O orçamento de erro restante foi calculado de acordo com as explicações acima.

Tipo de retorno

Valor flutuante

to_json

to_json(json_file, **kwargs)

GitHub

Despeje esses metadados em um arquivo json.

Parâmetros

  • json_file (str) – o caminho para o arquivo no qual os metadados serão despejados.
  • kwargs - argumentos de palavras-chave a serem passados para json.dump().

Tipo de retorno

Nenhum

Esta página foi útil?
Relate um bug, erro de digitação ou solicite conteúdo no GitHub.