Schätzer
class Estimator(mode=None, options=None)
Basen: BaseEstimatorV2
Clientseitige „Estimator“-Primitive für „ IBM Quantum Compute “ (früher „ Qiskit Runtime “).
Hierbei handelt es sich um eine Implementierung von „Estimator“, die auf der „Executor“-Primitive aufbaut und eine transparente clientseitige Verarbeitung mit schnelleren Rückkopplungsschleifen und mehr Kontrolle für den Benutzer ermöglicht.
Beispiel
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()Parameter
-
mode (BackendV2 | Session |Batch | None) –
Der Ausführungsmodus, der zur Durchführung der einfachen Abfrage verwendet wurde. Auswahlmöglichkeiten:
- A,
BackendV2wenn Sie den Job-Modus verwenden. - A,
Sessionwenn Sie den Sitzungsausführungsmodus verwenden. - A,
Batchwenn Sie den Batch-Ausführungsmodus verwenden.
Weitere Informationen zu den Ausführungsmodi finden Sie in der Dokumentation zu „ IBM Quantum Compute “.
- A,
-
options (EstimatorOptions) – Optionen für den Schätzer. Alle verfügbaren Optionen finden Sie
EstimatorOptionshier.
Attribute
mode
Gibt den von dieser Primitive verwendeten Ausführungsmodus zurück.
Rückgabe
Der von dieser Primitive verwendete Modus oder None falls kein Ausführungsmodus verwendet wird.
options
Typ: EstimatorOptions
Die Optionen dieses Kalkulators.
Methoden
backend
backend()
Gibt das Backend zurück, auf dem die primitive Abfrage ausgeführt wird.
Rückgabetyp
BackendV2
finalize_options
finalize_options()
Erstellen und finalisieren Sie die Optionen des Kostenvoranschlags.
Diese Methode kombiniert die konfigurierte Ausfallsicherheit mit der vom Benutzer angegebenen Option, um die endgültige Instanz EstimatorOptions zu erzeugen, die innerhalb eines Aufrufs von verwendet wird run().
Das Verfahren zur Ermittlung der endgültigen Optionen sieht wie folgt aus:
-
Initialisiere ein neues Objekt
EstimatorOptionsmit den durch … festgelegten Standardwertenresilience_level. -
Wenden Sie die benutzerdefinierten Optionen an und überspringen Sie dabei die Felder, die
Noneleer gelassen wurden, da sie die Standardwerte für die Ausfallsicherheit übernehmen sollen. -
Erzwinge die erforderlichen Abhängigkeiten zwischen Optionen. Beachten Sie insbesondere Folgendes:
- Durch die Aktivierung der Messungsminderung wird automatisch auch das „Measurement Twirling“ aktiviert.
- Durch die Aktivierung von Gate-basierten Mitigationsverfahren (wie z. B. PEA-basiertes ZNE oder PEC) werden sowohl Gate- als auch Mess-Twirling automatisch aktiviert.
Rückgabe
Das fertige Objekt EstimatorOptions .
Rückgabetyp
find_unique_layers
find_unique_layers(pubs, types='gates')
Gibt die eindeutigen „Boxed“-Ebenen zurück, die in den angegebenen PUBs vorkommen.
Die Anzahl der types Schichten kann entweder oder "gates" betragen "all", was jeweils nur den Gate-Schichten bzw. allen Schichten entspricht. Die zurückgegebene Liste enthält dann jeweils eine Instanz jeder einzelnen „boxed layer“ (dargestellt als CircuitInstruction), die in den Eingabe-PUBs vorkommt.
Behalten Sie beispielsweise beim Noise-Learning nur die Qubit-Gate-Schichten bei:
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)Parameter
- pubs (Iterable[EstimatorPubLike]) – Die Liste der PUBs, für die eine Liste eindeutiger Boxen zurückgegeben werden soll.
- types (Literal['gates', 'all']) – Die Arten von Ebenen, die zurückgegeben werden sollen. Es kann entweder oder
"gates"sein"all".
Rückgabe
Die einzigartigen, kastenförmigen Schichten eines bestimmten Typs, die in den angegebenen PUBs zu finden sind.
Rückgabetyp
Liste[CircuitInstruction]
run
run(pubs, *, precision=None, dry_run=False)
Senden Sie eine Anfrage an die „estimator“-Primitive.
Bei mittleren und komplexen Workloads kann die clientseitige Verarbeitung, die erforderlich ist, um die Eingaben des Schätzers den Eingaben des Executors zuzuordnen, ressourcenintensiv sein und zu einer Verzögerung zwischen dem Aufruf der Funktion und der job Übermittlung der Daten führen. Um den Fortschritt des Aufrufs zu überprüfen, wird empfohlen, die Protokollierung (mit der Stufe INFO ) einzurichten – weitere Informationen finden Sie in der Dokumentation unter IBM Quantum Compute.
Parameter
- pubs (Iterable[EstimatorPubLike]) – Eine iterierbare Struktur aus pub-ähnlichen Objekten. Zum Beispiel eine Liste von Schaltkreisen und Observablen oder Tupeln
(circuit, observables, parameter_values). - precision (float | None) – Die Zielgenauigkeit für Erwartungswertschätzungen jedes Schätzers „pub“, der keine eigene Genauigkeit angibt. In
Nonediesem Falloptions.default_precisionwird der Wert aus verwendet. - dry_run (bool) – Wenn
True, wird ein Testlauf durchgeführt, ohne den Auftrag auf einer QPU auszuführen. Dieser Modus kann verwendet werden, um den Auftrag zu validieren, den Ressourcenverbrauch abzuschätzen und Metadaten zur Schaltungszeit zu abrufen. Die zurückgegebenen Ergebnisse entsprechen zwar dem erwarteten Schema, enthalten jedoch zufällig generierte Dummy-Daten anstelle von tatsächlichen oder simulierten Messergebnissen. Im Gegensatz zu den simulierten Backends erfolgt die Verarbeitung dieses Testlaufs serverseitig, sodass der Vorgang möglicherweise nicht sofort abgeschlossen wird und der Zugriff auf diese Funktion eingeschränkt sein kann.
Rückgabe
Der übermittelte Auftrag.
Erhöhungen
- ValueError – Falls kein Backend bereitgestellt wird.
- IBMInputValueError – Wenn keine Pubs angegeben sind, wenn die Genauigkeit nicht ordnungsgemäß festgelegt wurde oder wenn nicht unterstützte Optionen erkannt werden.
Rückgabetyp
RuntimeJobV2 | LocalRuntimeJob