You need to enable JavaScript to run this app. 如何在Qiskit的VQC中实现可参数化的Amplitude Encoding振幅编码
优惠活动
大模型
产品
解决方案
定价
更多

如何在Qiskit的VQC中实现可参数化的Amplitude Encoding振幅编码

问题原因

Qiskit 原生的 initialize 方法在构造电路阶段会强制校验输入量子态的归一性,需要实时计算输入向量各元素的绝对值平方和,而ParameterVector是参数占位符,构造阶段没有实际数值,因此会触发类型错误,不支持直接传入参数化向量做振幅编码。

解决方案

使用Qiskit Machine Learning模块提供的RawFeatureVector类实现参数化振幅编码,该类专门适配VQC等量子机器学习模型的特征映射需求,支持参数化输入,不需要在电路构造阶段做归一性校验。

2量子比特测试示例(对应你报错的demo场景)

import numpy as np
from qiskit.circuit import QuantumCircuit, ParameterVector
from qiskit_machine_learning.circuit.library import RawFeatureVector

# 2量子比特对应4维特征向量
feature_dim = 4
x = ParameterVector('x', feature_dim)

# 构造参数化振幅编码电路
amp_encoding = RawFeatureVector(feature_dimension=feature_dim)
custom_circ = QuantumCircuit(amp_encoding.num_qubits)
custom_circ.append(amp_encoding, range(amp_encoding.num_qubits))

# 绑定参数验证功能
vector = [0.124, -0.124, 0.124, 0.124]
# 输入向量需提前做L2归一化
norm_vector = vector / np.linalg.norm(vector)
bound_circ = custom_circ.bind_parameters({x: norm_vector})

190维特征适配方案

你需要的8量子比特实现逻辑如下:

  • 190维原始特征先补零到256维(2^8),匹配8量子比特的振幅空间大小
  • 补零后的向量做L2归一化后输入电路
  • 直接将构造好的编码电路作为特征映射传入VQC类即可使用

对应代码示例:

import numpy as np
from qiskit_machine_learning.circuit.library import RawFeatureVector
from qiskit_machine_learning.algorithms import VQC

# 2^8=256,刚好容纳190个特征+66个补零值
feature_dim = 256
amp_feature_map = RawFeatureVector(feature_dimension=feature_dim)

# 单条样本预处理示例
raw_feature = np.random.rand(190)
# 末尾补66个0
padded_feature = np.pad(raw_feature, (0, 66), mode='constant')
# L2归一化
normed_feature = padded_feature / np.linalg.norm(padded_feature)

# 后续直接将amp_feature_map传入VQC构造参数即可
# vqc = VQC(feature_map=amp_feature_map, ansatz=你的变分电路, ...)

注意事项

  • 输入到RawFeatureVector的特征向量必须提前做L2归一化,保证所有元素的平方和为1,否则运行时会出现量子态有效性报错
  • RawFeatureVector的feature_dimension参数必须为2的整数次幂,对应消耗的量子比特数为log2(feature_dimension)

内容的提问来源于stack exchange,提问作者Fred Derf

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 04:33:03