Einführung in die Optionen
Mithilfe von Optionen können Sie die „ IBM Quantum “-Primitive an Ihre Anforderungen anpassen.
Struktur
Beim Aufruf der Primitive kannst du Optionen über eine Optionsklasse oder ein Wörterbuch übergeben. Häufig verwendete Optionen, wie z. B. resilience_level, befinden sich auf der ersten Ebene. Weitere Optionen sind in Kategorien zusammengefasst, wie zum Beispiel execution. Geben Sie die Optionen in diesem Format an: options.option.sub-option.sub-sub-option = choice. Beispiel: options.dynamical_decoupling.enable = True.
Standardwerte
Wenn Sie keinen Wert für eine Option angeben, erhält sie den speziellen Wert Unset und es wird der Standardwert des Servers verwendet. Der Standardwert ist also unabhängig von Ihrer Codeversion derselbe.
In den Tabellen im Abschnitt „Übersicht über die Optionsklassen“ im Leitfaden „Optionen“ der einzelnen Primitive sind die Standardwerte aufgeführt.
Optionen festlegen
Optionen können vor der Erstellung einer Primitive definiert und dieser als Instanz der Optionsklasse oder als Wörterbuch übergeben werden. Das Primitiv erstellt eine Kopie davon, was bedeutet, dass Änderungen am ursprünglichen Wörterbuch oder an der Optionsinstanz keinen Einfluss auf die Optionen haben, die dem Primitiv gehören.
Außerdem kannst du die Optionen ändern, nachdem die Primitive erstellt wurde. Verwenden Sie den Workflow, der für Ihre Anwendung am besten geeignet ist.
- Die verfügbaren Optionen können Sie während oder nach der Initialisierung der Primitive einsehen.
- Wenn Sie für eine Option keinen Wert angeben, wird ihr der Sonderwert zugewiesen,
Unsetund es gelten die Standardeinstellungen des Servers. - Das
optionsAttribut ist vomdataclassTyp „ Python “. Du kannst die integrierteasdictMethode verwenden, um es in ein Wörterbuch umzuwandeln.
options class
Beim Erstellen einer Instanz der Primitivklasse können Sie eine Instanz der options Klasse übergeben. run() Diese Optionen werden dann angewendet, wenn Sie die Berechnung durchführen. Geben Sie die Optionen in diesem Format an: options.option.sub-option.sub-sub-option = choice. Beispiel: options.dynamical_decoupling.enable = True.
Ausführliche Informationen zum Kurs finden Sie EstimatorOptions unter oder SamplerOptions .
Im folgenden Beispiel wird die Primitive „Estimator“ verwendet, die Syntax für andere Primitive ist jedoch ähnlich.
from qiskit_ibm_runtime import QiskitRuntimeService
# Legacy server-side primitive before qiskit-ibm-runtime 0.50.0
# from qiskit_ibm_runtime import Estimator
# from qiskit_ibm_runtime.options import EstimatorOptions
# Client-side primitive introduced in qiskit-ibm-runtime 0.50.0
from qiskit_ibm_runtime.executor_estimator import Estimator
from qiskit_ibm_runtime.options_models import EstimatorOptions
service = QiskitRuntimeService()
backend = service.least_busy(operational=True, simulator=False)
options = EstimatorOptions(
resilience_level=2,
resilience={"zne_mitigation": True, "zne": {"noise_factors": [1, 3, 5]}},
)
# or...
options = EstimatorOptions()
options.resilience_level = 2
options.resilience.zne_mitigation = True
options.resilience.zne.noise_factors = [1, 3, 5]
estimator = Estimator(mode=backend, options=options)Wörterbuch
Bei der Initialisierung einer Primitive können Sie Optionen als Wörterbuch angeben.
Im folgenden Beispiel wird die Primitive „Estimator“ verwendet, die Syntax für andere Primitive ist jedoch ähnlich.
from qiskit_ibm_runtime import QiskitRuntimeService
# Legacy server-side primitive before qiskit-ibm-runtime 0.50.0
# from qiskit_ibm_runtime import Estimator
# Client-side primitive introduced in qiskit-ibm-runtime 0.50.0
from qiskit_ibm_runtime.executor_estimator import Estimator
service = QiskitRuntimeService()
backend = service.least_busy(operational=True, simulator=False)
# Setting options during initialization
estimator = Estimator(
backend,
options={
"resilience_level": 2,
"resilience": {
"zne_mitigation": True,
"zne": {"noise_factors": [1, 3, 5]},
},
},
)Optionen nach der Initialisierung aktualisieren
Sie können die Optionen in diesem Format angeben: _primitive_.options.option.sub-option.sub-sub-option = choice , um die Autovervollständigung zu nutzen, oder die update() -Methode verwenden, um Massenaktualisierungen vorzunehmen.
Die Optionsklasse des Primitivs (EstimatorOptions oder SamplerOptions) muss nicht instanziiert werden, wenn Sie die Optionen erst nach der Initialisierung des Primitivs festlegen.
Im folgenden Beispiel wird die Primitive „Estimator“ verwendet, die Syntax für andere Primitive ist jedoch ähnlich.
from qiskit_ibm_runtime import QiskitRuntimeService
# Legacy server-side primitive before qiskit-ibm-runtime 0.50.0
# from qiskit_ibm_runtime import Estimator
# Client-side primitive introduced in qiskit-ibm-runtime 0.50.0
from qiskit_ibm_runtime.executor_estimator import Estimator
service = QiskitRuntimeService()
backend = service.least_busy(operational=True, simulator=False)
estimator = Estimator(mode=backend)
# Setting options after initialization
# This uses auto-complete.
estimator.options.default_precision = 0.01
# This does bulk update.
estimator.options.update(
default_precision=0.02, resilience={"zne_mitigation": True}
)Nächste Schritte
- Hier finden Sie Informationen dazu, wie Sie die Fehlerunterdrückung und die Fehlerbehebung konfigurieren können.
- Erfahren Sie mehr über die Optionen des Kostenvoranschlagsrechners.
- Erfahren Sie mehr über die Sampler-Optionen.
- Erfahren Sie mehr über die Optionen für Testamentsvollstrecker.