Skip to Content

数据、线路层与模型

QML 数据层使用 PyTorch 张量;线路由编码层、参数化 ansatz 和读出层组成。高层模型将这些组件组合成分类、回归或生成任务接口。

数据与预处理

import torch from unitarylab.library.qml.data import ( Dataset, scale_features_to_range, standardize, train_test_split, ) features = torch.tensor([ [-1.0, 0.2], [-0.5, 0.4], [0.6, -0.3], [1.0, -0.8] ], dtype=torch.float64) targets = torch.tensor([0, 0, 1, 1]) dataset = Dataset( features=scale_features_to_range(standardize(features)), targets=targets, ) train_set, test_set = train_test_split(dataset, test_fraction=0.25, seed=0)
工具用途
Dataset保存特征、目标和可选元数据
standardize()按特征标准化
scale_features_to_range()将特征映射到角度编码区间
pad_features()补齐编码所需特征维度
TargetStandardizer拟合、变换和恢复回归目标
train_test_split()、stratified_train_test_split()、k_fold_split()数据集划分
load_csv_dataset()从 CSV 构建数据集
bars_and_stripes_patterns()生成建模示例数据

预处理应只在训练集上拟合统计量,再应用到验证集和测试集,避免数据泄漏。

编码、ansatz 与读出

from unitarylab.library.qml.layers import ( AngleEncoding, HardwareEfficientAnsatz, ) encoding = AngleEncoding(num_qubits=2) ansatz = HardwareEfficientAnsatz(num_qubits=2, num_layers=1)
类别主要组件输入约束
编码AngleEncoding、DenseAngleEncoding、AmplitudeEncoding、ZZFeatureEncoding角度编码要求特征数匹配;幅度编码要求可归一化并适配 维
ansatzHardwareEfficientAnsatz、DataReuploadingAnsatz、QCNNAnsatz参数向量长度必须等于 parameter_count
纠缠FixedEntangler、ParameterizedEntangler边集合必须落在量子比特范围内
读出ExpectationReadout、PauliReadout、ProbabilityReadout、SampleReadout、StateReadout、DensityMatrixReadout返回类型依赖后端能力和 shots 配置
连续变量CVDisplacementEncoding、CVNeuralNetworkAnsatz、QuadratureReadout仅用于连续变量后端

SequentialCircuitLayer 可顺序组合多个层;as_parameter_vector() 与 split_parameter_vector() 用于整理和切分参数。

高层模型

from unitarylab.library.qml.models import VQCClassifier from unitarylab.library.qml.nn import TorchQMLLayer model = VQCClassifier( num_qubits=4, num_layers=1, num_classes=3, readout_wires=(0, 1, 2), ) module = TorchQMLLayer(model, seed=0)
任务模型
分类QuantumClassifier、VQCClassifier、DataReuploadingClassifier、QCNNClassifier、CVQuantumClassifier
回归QuantumRegressor、VQRegressor、DataReuploadingRegressor、QCNNRegressor
生成QuantumBornMachine、QuantumGenerator
自定义变分模型QMLModel、ParameterizedQMLModel、VariationalQuantumModel
PyTorch 集成TorchQMLLayer、TorchBornMachine、TorchQuantumGenerator、QuantumGAN、Quanvolution2d

类别数量、读出维度和损失函数必须一致。接受批量数据的接口以第一维表示 batch;单样本和批量输出的形状可能不同,训练前应执行一次前向传播并检查形状。

资源限制

量子比特数决定状态空间,ansatz 层数决定可训练参数和线路深度。幅度编码还需要制备归一化状态。先从较少量子比特和一层 ansatz 开始,再根据验证集结果扩展。

相关页面

最后更新于