Introduction 简介
PennyLane是一个开源的软件框架,用于量子机器学习,量子化学和量子计算,能够在所有硬件上运行。由Xanadu维护。
- PennyLane是什么:PennyLane是一个跨平台的Python库,用于编程量子计算机。它的可微分编程范式使得可以在不同的后端执行和训练量子程序。
- PennyLane的特点:PennyLane可以与强大的机器学习框架如NumPy的autograd,JAX,PyTorch和TensorFlow连接,使它们具有量子感知能力。它的核心功能是管理量子计算的执行,包括电路的评估和梯度的计算。这些信息被转发给经典框架,创建无缝的量子-经典流水线。
- PennyLane的设计原则:PennyLane的设计原则是电路可以在不同类型的模拟器或硬件设备上运行,而无需做任何改变。它负责优化与设备的通信,将电路编译为适合后端的形式,并选择最佳的梯度策略。
- PennyLane的集成:PennyLane自带默认的模拟器设备,但也可以与外部软件和硬件集成,如IBM的Qiskit,Google的Cirq,Rigetti的Forest或Xanadu的Strawberry Fields。


Quantum circuits 量子电路:
- 量子计算的表示:在 PennyLane 中,量子计算是由一个或多个量子电路组成的,它们被表示为量子节点对象。量子节点用于声明量子电路,并将其绑定到执行它的特定设备上。
- 量子函数:量子电路是作为一种特殊的 Python 函数构造的,称为量子电路函数或简称为量子函数。量子函数接受经典输入,并包含量子操作符或称为模板的操作符序列。量子函数必须总是返回一个或多个测量值,通过将测量函数应用于量子寄存器。量子函数在 QNode 中被评估。
- 设备:为了运行和优化一个量子电路,需要首先指定一个计算设备。设备是 Device 类的一个实例,可以表示模拟器或硬件设备。它们可以使用设备加载器来实例化。PennyLane 提供了一些基本的设备,如 ‘default.qubit’,‘default.mixed’,lightning.qubit 和 ‘default.gaussian’ 模拟器;其他设备可以作为插件安装。
- QNode:一个量子函数和一个设备被用来创建一个量子节点或 QNode 对象,它包装了量子函数并将其绑定到设备上。QNode 可以像标准的 Python 函数一样用来计算量子电路的结果。它接受与原始量子函数相同的参数。
- 自定义 PennyLane 模板:PennyLane 支持从其他框架导入已有的量子代码作为 PennyLane 模板。通过将你的量子代码加载为 PennyLane 模板,你可以增加进行解析微分和与 PyTorch 和 TensorFlow 等机器学习库接口的能力。目前,可以使用以下函数加载 Qiskit 的 QuantumCircuit 对象、OpenQASM 文件、pyQuil 程序和 Quil 文件。
device 设备
PennyLane offers some basic devices such as the 'default.qubit'
, 'default.mixed'
, lightning.qubit
, and 'default.gaussian'
simulators; additional devices can be installed as plugins (see available plugins for more details). Note that the choice of a device significantly determines the speed of your computation, as well as the available options that can be passed to the device loader.