Stimatore
class Estimator(mode=None, options=None)
Basi: BaseEstimatorV2
Primitiva di calcolo lato client per IBM Quantum Compute (precedentemente Qiskit Runtime ).
Si tratta di un'implementazione di Estimator basata sulla primitiva Executor, che consente un'elaborazione trasparente lato client con cicli di feedback più rapidi e un maggiore controllo da parte dell'utente.
Esempio
from qiskit import QuantumCircuit
from qiskit.quantum_info import SparsePauliOp
from qiskit_ibm_runtime import QiskitRuntimeService
from qiskit_ibm_runtime.executor_estimator import Estimator
service = QiskitRuntimeService()
backend = service.least_busy(operational=True, simulator=False)
# Create a simple circuit
circuit = QuantumCircuit(2)
circuit.h(0)
circuit.cx(0, 1)
# Define observable
observable = SparsePauliOp.from_list([("ZZ", 1), ("XX", 1)])
# Run the estimator with options
estimator = Estimator(mode=backend)
estimator.options.default_precision = 0.01
estimator.options.execution.init_qubits = True
job = estimator.run([(circuit, observable)])
result = job.result()Parametri
-
mode (BackendV2 | Session |Batch | None) –
La modalità di esecuzione utilizzata per eseguire la query primitiva. Può essere:
- A
BackendV2se si utilizza la modalità "job". - A
Sessionse si utilizza la modalità di esecuzione in sessione. - A
Batchse si utilizza la modalità di esecuzione in batch.
Per ulteriori informazioni sulle modalità di esecuzione, consultare la documentazione relativa a IBM Quantum Compute.
- A
-
options (EstimatorOptions) – Opzioni dello strumento di stima. Vedi qui
EstimatorOptionsper tutte le opzioni disponibili.
Attributi
mode
Restituisce la modalità di esecuzione utilizzata da questa primitiva.
Risultati
Modalità utilizzata da questa primitiva, oppure None se non viene utilizzata alcuna modalità di esecuzione.
options
Tipo: EstimatorOptions
Le opzioni di questo strumento di stima.
Metodi
backend
backend()
Restituisce il backend su cui verrà eseguita la query primitiva.
Tipo di restituzione
BackendV2
finalize_options
finalize_options()
Configurare e definire le opzioni di Estimator.
Questo metodo combina il livello di resilienza configurato con l'opzione specificata dall'utente per generare l'istanza EstimatorOptions finale utilizzata all'interno di una chiamata a run().
Il processo utilizzato per elaborare le opzioni definitive è il seguente:
-
Inizializza un nuovo
EstimatorOptionsoggetto con i valori predefiniti determinati daresilience_level. -
Applicare le opzioni specificate dall'utente, tralasciando i campi lasciati vuoti
Noneche sono destinati a ereditare i valori predefiniti relativi al livello di resilienza. -
Applicare le dipendenze obbligatorie tra le opzioni. In particolare:
- L'attivazione della mitigazione delle misurazioni abilita automaticamente la rotazione delle misurazioni.
- L'attivazione delle tecniche di mitigazione basate sui gate (come ZNE basato su PEA o PEC) abilita automaticamente sia il twirling dei gate che quello delle misurazioni.
Risultati
L'oggetto EstimatorOptions definitivo.
Tipo di restituzione
find_unique_layers
find_unique_layers(pubs, types='gates')
Restituisce i livelli incorniciati univoci presenti nei PUB specificati.
Il numero di types livelli può essere pari a o "gates" "all", corrispondente rispettivamente solo ai livelli di gate o a tutti i livelli. L'elenco restituito contiene quindi un'istanza di ciascun livello incapsulato distinto (rappresentato come un CircuitInstruction) presente nei PUB di input.
Ad esempio, per l'apprendimento del rumore, mantenere solo gli strati di gate dei qubit:
est = Estimator(mode, options)
est.options.resilience.pec_mitigation = True
layers = est.find_unique_layers(pubs, types="gates")
results = NoiseLearnerV3(mode).run(layers).result()
pauli_linblad_maps = results.to_pauli_lindblad_maps()
# Assign the learned model so PEC uses it on the next run.
est.options.resilience.layer_noise_model = zip(layers, pauli_linblad_maps)Parametri
- pubs (Iterable[EstimatorPubLike]) – L'elenco dei PUB per i quali restituire un elenco di caselle univoche.
- types (Literal['gates', 'all']) – I tipi di livelli da restituire. Può essere sia che
"gates""all".
Risultati
Gli strati a forma di scatola, caratteristici di un determinato tipo, riscontrati nei PUB indicati.
Tipo di restituzione
elenco[CircuitInstruction]
run
run(pubs, *, precision=None, dry_run=False)
Invia una richiesta alla primitiva "estimator".
Per carichi di lavoro moderati e complessi, l'elaborazione lato client necessaria per mappare gli input dello stimatore agli input dell'esecutore può richiedere molte risorse e causare un ritardo tra l'invocazione della funzione e l'invio job della stessa. Per verificare lo stato di avanzamento della chiamata, si consiglia di configurare la registrazione (con un livello INFO ) – per ulteriori informazioni, consultare la documentazione all'indirizzo IBM Quantum Compute.
Parametri
- pubs (Iterable[EstimatorPubLike]) – Un iterabile di oggetti simili a pub. Ad esempio, un elenco di circuiti e grandezze osservabili o tuple
(circuit, observables, parameter_values). - precision (float | None) – La precisione target per le stime del valore atteso di ciascun stimatore pub che non specifica la propria precisione. In tal caso
None,options.default_precisionverrà utilizzato il valore proveniente da. - dry_run (bool) – Se
True, esegue una simulazione senza eseguire il processo su una QPU. Questa modalità può essere utilizzata per verificare la validità del processo, stimare i consumi e recuperare i metadati relativi alla temporizzazione dei circuiti. I risultati restituiti mantengono lo schema previsto, ma contengono dati fittizi generati in modo casuale anziché risultati di misurazione reali o simulati. A differenza dei backend fittizi, l'elaborazione di questa simulazione avviene lato server, pertanto l'operazione potrebbe non concludersi immediatamente e l'accesso a questa funzionalità potrebbe essere limitato.
Risultati
Il lavoro inviato.
Aumenti
- ValueError – Se il backend non è disponibile.
- IBMInputValueError – Se non vengono forniti valori di intervallo, se la precisione non è specificata correttamente o se vengono rilevate opzioni non supportate.
Tipo di restituzione
RuntimeJobV2 | LocalRuntimeJob