cuquantum.cutensornet.create_network_descriptor

cuquantum.cutensornet.create_network_descriptor(intptr_t handle, int32_t num_inputs, num_modes_in, extents_in, strides_in, modes_in, qualifiers_in, int32_t num_modes_out, extents_out, strides_out, modes_out, int data_type, int compute_type) intptr_t[source]

初始化一个 cutensornetNetworkDescriptor_t,描述张量之间的连接性(即网络拓扑)。

参数
  • **handle** (intptr_t) – 不透明句柄,持有 cuTensorNet 的库上下文。

  • **num_inputs** (int32_t) – 输入张量的数量。

  • **num_modes_in** (object) –

    大小为 num_inputs 的数组;num_modes_in[i] 表示第 i 个张量中可用的模式数量。它可以是

    • 一个 int 作为指向数组的指针地址,或

    • 一个 int32_t 的 Python 序列。

  • **extents_in** (object) –

    大小为 num_inputs 的数组;extents_in[i] 具有 num_modes_in[i] 个条目,其中 extents_in[i][j] (j < num_modes_in[i]) 对应于张量 i 的第 j 个模式的范围。它可以是

    • 一个 int 作为指向嵌套序列的指针地址,或

    • 一个 int 的 Python 序列,每个都是指向 ‘int64_t’ 有效序列的指针地址,或

    • 一个 int64_t 的嵌套 Python 序列。

  • **strides_in** (object) –

    大小为 num_inputs 的数组;strides_in[i] 具有 num_modes_in[i] 个条目,其中 strides_in[i][j] (j < num_modes_in[i]) 对应于关于张量 i 的第 j 个模式的两个逻辑相邻元素之间的线性化偏移(以物理内存为单位)。它可以是

    • 一个 int 作为指向嵌套序列的指针地址,或

    • 一个 int 的 Python 序列,每个都是指向 ‘int64_t’ 有效序列的指针地址,或

    • 一个 int64_t 的嵌套 Python 序列。

  • **modes_in** (object) –

    大小为 num_inputs 的数组;modes_in[i] 具有 num_modes_in[i] 个条目 - 每个条目对应一个模式。输入张量中未出现的每个模式都将被隐式收缩。它可以是

    • 一个 int 作为指向嵌套序列的指针地址,或

    • 一个 int 的 Python 序列,每个都是指向 ‘int32_t’ 有效序列的指针地址,或

    • 一个 int32_t 的嵌套 Python 序列。

  • **qualifiers_in** (object) –

    大小为 num_inputs 的数组;qualifiers_in[i] 表示第 i 个输入张量的限定符。请参阅 cutensornetTensorQualifiers_t。它可以是

    • 一个 int 作为指向数组的指针地址,或

    • 一个 cutensornetTensorQualifiers_t 的 Python 序列。

  • **num_modes_out** (int32_t) – 输出张量的模式数量。在输入时,如果此值为 -1 并且未提供输出模式,则网络将推断输出模式。如果此值为 0,则网络将被强制缩减。

  • **extents_out** (object) –

    大小为 num_modes_out 的数组;extents_out[j] (j < num_modes_out) 对应于输出张量的第 j 个模式的范围。它可以是

    • 一个 int 作为指向数组的指针地址,或

    • 一个 int64_t 的 Python 序列。

  • **strides_out** (object) –

    大小为 num_modes_out 的数组;strides_out[j] (j < num_modes_out) 对应于关于输出张量的第 j 个模式的两个逻辑相邻元素之间的线性化偏移(以物理内存为单位)。它可以是

    • 一个 int 作为指向数组的指针地址,或

    • 一个 int64_t 的 Python 序列。

  • **modes_out** (object) –

    大小为 num_modes_out 的数组;modes_out[j] 表示输出张量的第 j 个模式。输出张量。它可以是

    • 一个 int 作为指向数组的指针地址,或

    • 一个 int32_t 的 Python 序列。

  • **data_type** (int) – 表示所有输入和输出张量的数据类型。

  • **compute_type** (ComputeType) – 表示整个计算中使用的计算类型。

返回值

指向 cutensornetNetworkDescriptor_t 的指针。

返回类型

intptr_t