You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为IBM硬件转译Qiskit VQC?本地运行正常但部署到IBM量子平台时遇指令不兼容错误

如何为IBM硬件转译Qiskit VQC?本地运行正常但部署到IBM量子平台时遇指令不兼容错误

看起来你遇到的核心问题是IBM量子平台现在要求提交的电路必须严格匹配目标硬件的指令集,而VQC默认不会自动完成转译适配。我来帮你梳理两种可行的解决方案:

方案一:手动转译特征映射和Ansatz后传入VQC

你可以先单独把特征映射(feature_map)和ansatz电路转译到目标硬件支持的指令集,再传入VQC。这样能确保电路完全符合硬件要求,具体修改代码如下:

from qiskit_machine_learning.algorithms.classifiers import VQC
from qiskit_ibm_runtime import QiskitRuntimeService, SamplerV2 as Sampler
from qiskit.circuit.library import ZFeatureMap, RealAmplitudes
from qiskit.compiler import transpile
from qiskit.algorithms.optimizers import COBYLA  # 补上你遗漏的优化器导入

service = QiskitRuntimeService()
backend = service.least_busy(operational=True, simulator=False)
 
sampler = Sampler(backend)

# 定义原始电路
feature_map = ZFeatureMap(feature_dimension=16, reps=1)
ansatz = RealAmplitudes(num_qubits=16, reps=3)
optimizer = COBYLA(maxiter=100)

# 关键步骤:手动转译电路到目标硬件
transpiled_feature_map = transpile(feature_map, backend=backend, optimization_level=3)
transpiled_ansatz = transpile(ansatz, backend=backend, optimization_level=3)

# 使用转译后的电路创建VQC
vqc = VQC(
    sampler=sampler,
    feature_map=transpiled_feature_map,
    ansatz=transpiled_ansatz,
    optimizer=optimizer,
    callback=callback_graph
)

vqc.fit(x_train, np_y_train)

这里的optimization_level=3会启用最高级的转译优化,既保证兼容性又能提升硬件运行效率。

方案二:配置Sampler自动处理转译

另一种更简便的方式是给SamplerV2添加转译配置,让它在接收电路时自动完成转译适配。这种方式不需要单独处理每个电路,适合复杂的ML工作流:

from qiskit_machine_learning.algorithms.classifiers import VQC
from qiskit_ibm_runtime import QiskitRuntimeService, SamplerV2 as Sampler, Options
from qiskit.circuit.library import ZFeatureMap, RealAmplitudes
from qiskit.algorithms.optimizers import COBYLA

service = QiskitRuntimeService()
backend = service.least_busy(operational=True, simulator=False)

# 创建转译配置选项
options = Options()
options.transpile.optimization_level = 3
options.transpile.target = backend.target  # 指定目标硬件的指令集

# 用带配置的Sampler初始化
sampler = Sampler(backend, options=options)

feature_map = ZFeatureMap(feature_dimension=16, reps=1)
ansatz = RealAmplitudes(num_qubits=16, reps=3)
optimizer = COBYLA(maxiter=100)

vqc = VQC(
    sampler=sampler,
    feature_map=feature_map,
    ansatz=ansatz,
    optimizer=optimizer,
    callback=callback_graph
)

vqc.fit(x_train, np_y_train)

额外提示

  • 你提到本地运行复杂电路时内核崩溃,这是因为16量子位的电路在本地模拟需要极大的计算资源,迁移到IBM硬件是完全正确的选择。
  • 可以通过print(backend.configuration().basis_gates)查看目标硬件支持的基础门列表,确认是否真的不支持H门,进一步排查问题根源。

备注:内容来源于stack exchange,提问作者Sean Buckley

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 17:04:35