登录
主页
用PennyLane搭建第一个极简量子神经网络
2026-06-22
  
963
深数据
一、为什么入门量子神经网络首选PennyLane
量子神经网络(QNN, Quantum Neural Network)是量子机器学习的核心基础,区别于经典神经网络,它依托量子叠加、纠缠特性,用参数化量子电路替代经典神经元,具备更强的高维数据拟合能力与计算潜力。对于初学者而言,从零搭建量子神经网络最大的门槛在于量子设备适配、电路微分、训练框架兼容等问题。
PennyLane是由Xanadu推出的开源量子机器学习框架,也是目前最友好的入门工具。它屏蔽了底层量子硬件差异,支持多后端模拟器与真机适配,兼容PyTorch、TensorFlow等经典深度学习框架,内置自动微分功能,让开发者可以用近似经典神经网络的编程逻辑,快速搭建、训练量子模型,无需深入钻研复杂量子力学公式,是新手入门量子AI的最优选择之一。
二、环境准备与依赖安装
本次项目仅需核心依赖:PennyLane量子框架与NumPy数值计算库,安装简洁、无冗余依赖,适配Python3.8及以上版本。
2.1 安装依赖库
bash
pip install pennylane numpy
2.2 环境验证
安装完成后,可执行简单代码验证环境是否正常,确认PennyLane可正常调用量子模拟器:
python
import pennylane as qml
import numpy as np
# 打印版本信息,验证安装成功
print(f\"PennyLane版本:{qml.__version__}\")
print(\"量子模拟器初始化正常\")
三、极简量子神经网络的原理
经典神经网络的核心是「加权求和+非线性激活」,而变分量子神经网络(VQC,最主流的极简QNN)的核心分为三步,逻辑完全对应经典网络,极易理解:
3.1 数据编码(输入层):将经典数值数据,通过量子旋转门映射为量子比特叠加态,完成经典数据到量子态的转换,对应经典网络的输入预处理;
3.2 参数化量子电路(隐藏层):通过可训练参数的量子逻辑门(RX、RY、RZ)构建量子变换电路,通过调整参数改变量子态,完成特征提取,对应经典网络的隐藏层加权计算;
3.3 量子测量(输出层):对最终量子态进行可观测量测量,将量子态信息还原为经典数值结果,完成模型推理,对应经典网络的输出激活。
本次极简模型采用单量子比特架构,无量子纠缠、无复杂多层电路,最大限度简化结构,聚焦QNN核心训练逻辑。
四、完整极简量子神经网络搭建实战
我们将搭建模型拟合正弦函数,实现基础回归任务,全程代码模块化、注释详细,可直接复制运行。
4.1 初始化量子设备
PennyLane需先定义量子设备,本次使用框架内置的default.qubit高性能本地量子模拟器,无需真实量子硬件,本地即可运行,设置1根量子线路(对应1个量子比特)。
python
# 初始化量子模拟设备
dev = qml.device(\"default.qubit\", wires=1)
# wires=1 代表使用1个量子比特,极简模型核心配置
4.2 定义量子神经网络电路
通过@qml.qnode装饰器将普通Python函数转换为可微分量子节点,这是PennyLane的核心语法,实现量子电路的编译与自动微分,支撑模型参数训练。
python
# 定义极简量子神经网络电路
@qml.qnode(dev)
def qnn_circuit(params, x):
\"\"\"
极简量子神经网络前向传播电路
:param params: 可训练参数(量子门旋转角度)
:param x: 经典输入数据
:return: 量子测量期望值(模型输出)
\"\"\"
# 输入编码:RX门将经典数据x编码为量子态
qml.RX(x, wires=0)
# 隐藏层参数变换:可训练RY、RZ门,拟合数据特征
qml.RY(params[0], wires=0)
qml.RZ(params[1], wires=0)
# 输出测量:测量泡利Z算子,输出经典数值
return qml.expval(qml.PauliZ(0))
4.3 构建模型、损失函数与优化器
沿用经典机器学习训练逻辑:定义模型前向函数、均方误差损失函数,搭配PennyLane内置梯度下降优化器,实现参数迭代更新。
python
# 初始化模型参数、优化器与数据集
# 初始化2个可训练参数,随机初始化
params = np.array([0.1, 0.2], requires_grad=True)
# 定义梯度下降优化器,学习率0.1
opt = qml.GradientDescentOptimizer(stepsize=0.1)
# 构建训练数据集:拟合y=sin(x)
x_train = np.linspace(0, 2 * np.pi, 50)
y_train = np.sin(x_train)
# 定义损失函数:均方误差MSE
def loss_fn(params, x, y):
predictions = np.array([qnn_circuit(params, xi) for xi in x])
return np.mean((predictions - y) ** 2)
4.4 模型迭代训练
循环迭代更新量子电路参数,逐步降低损失值,完成量子神经网络的训练收敛。
python
# 模型训练流程
epoch_num = 80
loss_history = []
print(\"===== 极简量子神经网络训练开始 =====\")
for epoch in range(epoch_num):
# 梯度下降更新参数
params, loss = opt.step_and_cost(loss_fn, params, x_train, y_train)
loss_history.append(loss)
# 每10轮打印一次训练信息
if (epoch + 1) % 10 == 0:
print(f\"迭代轮数:{epoch+1:2d} | 训练损失:{loss:.6f}\")
print(\"===== 训练完成 =====\")
4.5 模型推理与结果可视化
训练完成后,用训练好的量子电路参数进行推理,拟合正弦曲线,直观展示模型效果。
python
# 模型推理与可视化
import matplotlib.pyplot as plt
# 模型预测
y_pred = np.array([qnn_circuit(params, xi) for xi in x_train])
# 绘制拟合结果
plt.figure(figsize=(10, 6))
plt.plot(x_train, y_train, label=\"真实值 sin(x)\", linewidth=2)
plt.plot(x_train, y_pred, label=\"量子神经网络预测值\", linewidth=2, linestyle=\"--\")
plt.xlabel(\"x\")
plt.ylabel(\"y\")
plt.title(\"PennyLane极简量子神经网络拟合正弦函数\")
plt.legend()
plt.grid(True, alpha=0.3)
plt.show()
# 打印最终参数与损失
print(f\"最终训练参数:{params}\")
print(f\"最终训练损失:{loss_history[-1]:.6f}\")
五、代码逐模块解析
5.1 量子设备与QNode的作用
qml.device 负责绑定量子计算后端,本次使用本地模拟器,无需硬件资源;@qml.qnode 是PennyLane的核心装饰器,将普通函数封装为量子计算节点,自动完成电路编译、梯度计算,是量子模型可训练的关键,完美适配深度学习的反向传播逻辑。
5.2 量子门的极简逻辑
•RX门:输入编码层,将经典数值x映射为量子比特的叠加态,实现经典数据向量子域的转换;
•RY、RZ门:可训练参数层,两个角度参数为模型权重,训练过程中不断优化,调整量子态特征;
•PauliZ测量:将量子叠加态坍缩为经典数值,完成量子计算到经典输出的映射,是QNN唯一的输出方式。
5.3 训练逻辑与经典网络的异同
训练流程与经典神经网络完全一致:前向传播计算预测值、损失函数计算误差、梯度下降反向更新参数。唯一区别是:经典网络的权重矩阵更新,替换为了量子门旋转角度参数更新,本质都是通过梯度最小化损失,极大降低了量子AI的学习门槛。
六、运行结果与效果说明
6.1 训练过程:损失值会持续稳步下降,80轮迭代后损失收敛至极低数值,模型快速拟合数据规律;
6.2 可视化结果:量子神经网络预测曲线与真实正弦曲线基本重合,极简模型可高效完成基础回归任务;
6.3 模型优势:仅2个可训练参数,远少于经典全连接网络,体现了量子电路少参数、高拟合能力的核心优势。
七、常见问题与入门拓展方向
7.1 新手常见问题
•训练损失不下降:检查参数是否开启梯度(requires_grad=True)、学习率是否过大/过小;
•代码报错:确认PennyLane版本最新,依赖库完整,无版本冲突;
•拟合效果差:可适当增加迭代轮数、微调学习率,或增加量子门数量提升模型复杂度。
7.2 进阶拓展方向
•增加量子比特数,引入CNOT纠缠门,搭建多比特量子神经网络;
•替换任务为二分类、图像分类,适配更多机器学习场景;
•对接PyTorch/TensorFlow,搭建混合量子-经典神经网络;
•切换真实量子硬件后端,体验真机量子计算。
八、总结
基于PennyLane搭建了行业最简量子神经网络,摒弃复杂的量子理论与冗余电路,聚焦核心训练逻辑,完整实现了数据编码、量子推理、参数优化、结果验证的全流程。通过本次实战可以清晰认知:量子神经网络并非高深晦涩,其训练逻辑与经典深度学习高度互通,只是将经典神经元替换为了参数化量子电路。
PennyLane极大降低了量子机器学习的入门门槛,让开发者可以基于现有AI知识快速切入量子AI领域。这个极简模型是所有复杂量子神经网络的基础,掌握该架构后,可快速迭代拓展至各类高阶量子机器学习任务。
点赞数:3
© 2021 - 现在 杭州极深数据有限公司 版权所有 (深数据® DEEPDATA® 极深®) 联系我们 
浙公网安备 33018302001059号  浙ICP备18026513号-1号