cuquantum.cutensornet.experimental.NetworkOperator

class cuquantum.cutensornet.experimental.NetworkOperator(state_mode_extents, dtype='complex128', options=None)[源代码]

创建张量网络算符对象。

参数
  • state_mode_extents – 一个整数序列,指定所有状态模式的维度。

  • dtype

    一个字符串,指定张量网络算符的数据类型,当前支持以下数据类型

    • 'float32'

    • 'float64'

    • 'complex64'

    • 'complex128' (默认)

  • options – 将状态计算的选项指定为 NetworkOptions 对象。或者,也可以提供包含 NetworkOptions 构造函数参数的 dictNetworkOptions 对象。如果未指定,则值将设置为默认构造的 NetworkOptions 对象。

方法

__init__(state_mode_extents, dtype='complex128', options=None)[源代码]
append_mpo(coefficient, modes, mpo_tensors, stream=None)[源代码]

将矩阵乘积算符 (MPO) 组件附加到张量网络算符。

参数
  • coefficient – 完全张量积的系数标量。

  • modes – 一个整数序列,指定每个 MPO 在其上作用的模式。

  • mpo_tensors – 每个 MPO 操作数的张量(类似 ndarray 的对象)序列。当前支持的类型为 numpy.ndarraycupy.ndarray,和 torch.Tensor。每个操作数的模式预计遵循 pknb 的顺序,其中 p 表示连接到前一个 MPO 张量的模式,n 表示连接到下一个 MPO 张量的模式,k 表示 ket 模式,b 表示 bra 模式。请注意,目前仅支持具有开放边界条件的 MPO,因此第一个和最后一个 MPO 张量中不应存在 pn 模式。请注意,此处 bra 和 ket 模式的相对顺序与 append_product() 中的 operand 不同。

  • stream – 提供 CUDA 流以用于附加张量积(如果操作数在 CPU 上提供,则用于将操作数复制到 GPU)。可接受的输入包括 cudaStream_t (作为 Python int), cupy.cuda.Stream, 和 torch.cuda.Stream。如果未提供流,则将使用当前流。

append_product(coefficient, modes, tensors, stream=None)[源代码]

将张量积组件附加到张量网络算符。

参数
  • coefficient – 完全张量积的系数标量。

  • modes – 一个嵌套的整数序列,表示 tensors 中每个操作数作用的模式。

  • tensors – 每个张量操作数的张量(类似 ndarray 的对象)序列。当前支持的类型为 numpy.ndarraycupy.ndarray,和 torch.Tensor。每个操作数的模式预计按 ABC...abc... 排序,其中 ABC... 表示输出 bra 模式,abc... 表示对应于 modes 的输入 ket 模式。

  • stream – 提供 CUDA 流以用于附加张量积(如果操作数在 CPU 上提供,则用于将操作数复制到 GPU)。可接受的输入包括 cudaStream_t (作为 Python int), cupy.cuda.Stream, 和 torch.cuda.Stream。如果未提供流,则将使用当前流。

classmethod from_pauli_strings(pauli_strings, dtype='complex128', backend='cupy', options=None, stream=None)[源代码]

从给定的泡利字符串生成张量网络算符对象。

参数
  • pauli_strings – 一个字典,将泡利字符串映射到相应的系数。或者可以是单个泡利字符串。

  • dtype

    一个字符串,指定张量网络算符的数据类型,当前支持以下数据类型

    • 'complex64'

    • 'complex128' (默认)

  • backend – 一个字符串,指定设备张量操作数的 ndarray 后端。当前支持 'cupy' (默认) 和 'torch'

  • options – 将状态计算的选项指定为 NetworkOptions 对象。或者,也可以提供包含 NetworkOptions 构造函数参数的 dictNetworkOptions 对象。如果未指定,则值将设置为默认构造的 NetworkOptions 对象。

  • stream – 提供 CUDA 流以用于张量网络算符构造,这对于流排序操作(如分配内存)是必需的。可接受的输入包括 cudaStream_t (作为 Python int), cupy.cuda.Stream, 和 torch.cuda.Stream。如果未提供流,则将使用当前流。