如何在IBM Qiskit Runtime的Estimator/Sampler中设置rep_delay
在Qiskit Runtime原语中设置rep_delay的正确方法
可以在Estimator或Sampler原语中设置rep_delay,但不能直接将其作为run()方法的参数传递,需要把它放到原语的options参数的execution子字典中。
正确的Sampler示例代码
from qiskit_ibm_runtime import Estimator, Session, QiskitRuntimeService, Sampler from qiskit.circuit.library import RealAmplitudes circuit = RealAmplitudes(num_qubits=2, reps=2) service = QiskitRuntimeService(channel="ibm_cloud", token=API_Key_my, instance=crn_pay) backend = {0:"ibm_algiers",1:"ibmq_qasm_simulator",2:"ibmq_manila"}[0] with Session(service=service, backend=backend): # 将rep_delay放入execution选项中 sampler = Sampler(options={"shots": 2048, "execution": {"rep_delay": 0.00001}}) job = sampler.run(circuit)
正确的Estimator示例代码
如果使用Estimator,逻辑完全一致:
from qiskit_ibm_runtime import Estimator, Session, QiskitRuntimeService from qiskit.circuit.library import RealAmplitudes from qiskit.quantum_info import SparsePauliOp circuit = RealAmplitudes(num_qubits=2, reps=2) observable = SparsePauliOp.from_list([("ZZ", 1)]) service = QiskitRuntimeService(channel="ibm_cloud", token=API_Key_my, instance=crn_pay) backend = {0:"ibm_algiers",1:"ibmq_qasm_simulator",2:"ibmq_manila"}[0] with Session(service=service, backend=backend): estimator = Estimator(options={"shots": 2048, "execution": {"rep_delay": 0.00001}}) job = estimator.run(circuit, observable)
报错原因说明
传统backend.run()方法直接接受rep_delay作为参数,但Qiskit Runtime原语(Estimator/Sampler)的参数结构不同——所有与执行相关的配置都需要嵌套在options的execution字段下,直接传递rep_delay会被识别为未定义的关键字参数,从而触发错误。
内容的提问来源于stack exchange,提问作者Robert Cumming
相关产品推荐
相关产品推荐

