qml.numpy¶
概述¶
PennyLane NumPy子包提供了一个可微分的包装器,围绕NumPy,能够通过标准NumPy代码进行反向传播。
在使用PennyLane与Autograd接口时,必须使用这个版本的NumPy。
>>> from pennylane import numpy as np
注意
如果使用其他接口,例如 TensorFlow PyTorch 或 JAX,那么不应该使用PennyLane提供的NumPy;相反,应该直接使用标准的NumPy导入。
该包是一个封装在 autograd.numpy 之上的工具;有关所有可用函数的详细信息,请参考 Autograd docs。
PennyLane 还扩展了 Autograd,增加了以下类、错误和函数:
遍历对象的符号表,使用 |
|
遍历一个可迭代对象,并提取出现的任何PennyLane张量。 |
|
装饰器,包装可调用对象和类,使它们都接受一个 |
|
构造一个用于Autograd QNodes的PennyLane张量。 |
|
如果尝试使用Autograd对不可训练的 |
注意事项¶
该包是一个封装在 autograd.numpy 之上的工具,因此存在从Autograd继承的一些注意事项:
请勿使用:
赋值给数组,例如
A[0, 0] = x.
列表隐式转换为数组,例如
A = np.sum([x, y])。确保首先显式转换为NumPy数组,即使用A = np.sum(np.array([x, y]))替代。
A.dot(B)表示法。请使用np.dot(A, B)或A @ B替代。
就地操作,例如
a += b。请改用a = a + b。
一些
isinstance检查,比如isinstance(x, np.ndarray)或isinstance(x, tuple),而没有先执行from autograd.builtins import isinstance, tuple。
有关更多详细信息,请参考Autograd docs。