qml.devices¶
模块
该子包提供了PennyLane的默认设备,无需安装外部插件。 默认设备提供了基本的内置量子比特和CV电路模拟器,可以与PennyLane一起使用,而不需要额外的依赖项。它们还可以在PennyLane测试套件中使用,以验证和测试量子梯度计算。
定义DeviceCapabilities类,以及从TOML文件加载它的工具。 |
|
默认的qubit设备是PennyLane的标准基于qubit的设备。 |
|
默认的 |
|
default.mixed 设备是 PennyLane 的标准量子比特模拟器,用于混合态计算。 |
|
默认的.qutrit设备是PennyLane的标准基于qutrit的设备。 |
|
默认的.qutrit.mixed设备是PennyLane用于混态计算的标准qutrit模拟器。 |
|
该模块包含使用 |
|
该模块包含默认的.tensor设备,用于使用 |
|
该模块包含了 |
|
此模块包含 |
|
该模块包含 |
|
null.qubit设备是一个无操作的设备,适用于资源估计,以及在不直接进行电路评估的情况下基准测试PennyLane的辅助功能。 |
|
包含 ReferenceQubit 设备,这是一个可以用于测试和插件开发目的的最小设备。 |
|
这个子包提供了与PennyLane核心功能的设备的集成测试。 |
下一代设备¶
pennylane.devices.Device 是下一代设备的最新接口,替代了 pennylane.devices.LegacyDevice 和 pennylane.devices.QubitDevice。
|
一个用于配置量子电路在设备上执行的类。 |
|
一个用于存储中途测量配置的类。 |
|
一个可以控制一个或多个后端的设备驱动程序。 |
|
一个用Python编写的PennyLane设备,能够进行反向传播导数。 |
|
一个Pennylane设备,用于使用 quimb 执行量子电路的张量网络模拟。 |
|
用于PennyLane的空量子比特设备。 |
|
一个基于numpy的精简模拟器,用于参考和测试目的。 |
|
一个基于PennyLane的Python设备,用于混合态三元量子态仿真。 |
一个将设备从旧的 |
预处理变换¶
该 preprocess 模块提供了几种变换,可以用于构建 preprocess() 方法以供设备使用。
|
分解操作直到满足停止条件。 |
|
验证电路的可观测量和测量值。 |
|
验证支持的状态和基于样本的测量过程。 |
|
验证胶带中存在的所有导线是否在提供的导线集合中。 |
|
验证多进程的工作线程数量。 |
如果任何可观察量是可训练的,则会引发警告;如果任何可训练参数属于状态准备操作,则会引发错误。 |
|
|
如果胶带有有限的拍摄次数,则引发错误。 |
与设备预处理相关的其他变换包括:
|
量子函数变换,它将基于测量结果的操作替换为受控操作。 |
将一个广播的胶带扩展为多个胶带,以及一个堆叠和压缩结果的函数。 |
|
|
将电路拆分为测量可交换观察量组的带。 |
修饰符¶
可让设备轻松添加默认行为的 modifiers。
|
修改所有函数以接受单个磁带以及批处理。 |
|
修改所有方法以添加默认的模拟器样式跟踪。 |
例如,使用自定义设备,我们可以添加模拟器风格的跟踪和处理单个电路的能力。有关每个修饰符的更多详细信息,请参见文档。
@simulator_tracking
@single_tape_support
class MyDevice(qml.devices.Device):
def execute(self, circuits, execution_config = qml.devices.DefaultExecutionConfig):
return tuple(0.0 for _ in circuits)
>>> dev = MyDevice()
>>> tape = qml.tape.QuantumTape([qml.S(0)], [qml.expval(qml.X(0))])
>>> with dev.tracker:
... out = dev.execute(tape)
>>> out
0.0
>>> dev.tracker.history
{'batches': [1],
'simulations': [1],
'executions': [1],
'results': [0.0],
'resources': [Resources(num_wires=1, num_gates=1,
gate_types=defaultdict(<class 'int'>, {'S': 1}),
gate_sizes=defaultdict(<class 'int'>, {1: 1}), depth=1,
shots=Shots(total_shots=None, shot_vector=()))]}
量子位模拟工具¶
用于执行基于量子比特的量子电路仿真的子模块。
此子模块为内部模块,可能会随时更改而不进行弃用周期。请自行决定是否使用。
|
返回初始状态,如果没有提供状态准备算子,则默认为 \(\ket{0}\)。 |
|
对给定状态应用与运算符。 |
|
对一个状态应用测量过程。 |
|
返回在给定状态上进行的测量过程的样本。 |
|
从给定的概率中采样,在JAX和NumPy实现之间调度。 |
|
返回一系列状态的样本。 |
|
模拟一个单一的量子脚本。 |
|
实现了Jones and Gacon中概述的伴随方法,以区分输入带。 |
|
用于前向模式求导的雅可比向量积。 |
|
用于反向模式微分的向量雅可比积。 |
三态混合态仿真工具¶
用于执行基于三态量子电路的混合态仿真的子模块。
此子模块为内部模块,可能会随时更改而不进行弃用周期。请自行决定是否使用。
|
返回一个初始状态,如果没有提供状态准备算符,默认为 \(\ket{0}\bra{0}\)。 |
|
对给定状态应用操作。 |
|
对一个状态应用测量过程。 |
|
返回在给定状态上进行的测量过程的样本。 |
|
来自三态系统的概率分布样本。 |
|
返回一个态的计算基样本序列。 |
|
模拟一个单一的量子脚本。 |