昇腾社区首页
中文
注册

swapLast2Axes

功能描述

  • swapLast2AxesGetWorkspaceSize

    接口功能:计算swapLast2Axes算子所需的workspace大小。

    若需使用“swapLast2Axes”算子,需先调用“swapLast2AxesGetWorkspaceSize”接口获取计算所需workspace大小以及包含了算子计算流程的执行器,再调用“swapLast2Axes”接口执行计算。

  • swapLast2Axes

    接口功能:交换Tensor的最后两维。

计算公式

swapLast2Axes
  • 计算公式:,其中:b为数据的批次号,i为输入数据的行号, j为输入数据的列号。
  • 示例:
    • 示例一:

      输入“inTensor”为:

      [[1.+0.j, 2.+0.j, 3.+0.j]],

      调用swapLast2Axes算子后,

      输出“outTensor”为:

      [[1.+0.j], [2.+0.j], [3.+0.j]].
    • 示例二:

      输入“inTensor”为:

      [[[ 0.+0.j, 1.+0.j, 2.+0.j], 
      [ 3.+0.j, 4.+0.j, 5.+0.j]],
      
      [[ 6.+0.j, 7.+0.j, 8.+0.j], 
      [ 9.+0.j, 10.+0.j, 11.+0.j]]],

      调用swapLast2Axes算子后,

      输出“outTensor”为:

      [[[ 0.+0.j, 3.+0.j], 
      [ 1.+0.j, 4.+0.j], 
      [ 2.+0.j, 5.+0.j]],
      
      [[ 6.+0.j, 9.+0.j], 
      [ 7.+0.j, 10.+0.j], 
      [ 8.+0.j, 11.+0.j]]].

接口原型

  • AsdSip::AspbStatus swapLast2AxesGetWorkspaceSize(const aclTensor *inTensor, aclTensor *outTensor, size_t *size)
  • AsdSip::AspbStatus swapLast2Axes(const aclTensor *inTensor, aclTensor *outTensor, void *stream,void *workspace = nullptr)

参数列表

  • swapLast2AxesGetWorkspaceSize

    参数名称

    Input/Output

    类型

    描述

    inTensor

    Input

    const aclTensor *

    公式中的inTensor,Device侧的Tensor,输入dim限制为2或3,输入的最大元素数为3600000000,数据类型仅支持COMPLEX64,数据格式支持ND。

    outTensor

    Input

    aclTensor *

    公式中的outTensor,Device侧的Tensor,数据类型仅支持COMPLEX64,如果inTensor的shape为[k,x,y],outTensor的shape为[k,y,x],数据类型需要与inTensor的数据类型一致,数据格式支持ND。

    workspaceSize

    Input

    size_t *

    swapLast2Axes算子所需要的workspace。

  • swapLast2Axes

    参数名称

    Input/Output

    类型

    描述

    inTensor

    Input

    const aclTensor *

    公式中的inTensor,Device侧的Tensor,输入dim限制为2或3,输入的最大元素数为3600000000,数据类型仅支持COMPLEX64,数据格式支持ND。

    outTensor

    Output

    aclTensor *

    公式中的outTensor,Device侧的Tensor,数据类型仅支持COMPLEX64,如果inTensor的shape为[k,x,y],outTensor的shape为[k,y,x],数据类型需要与inTensor的数据类型一致,数据格式支持ND。

    stream

    Input

    void*

    npu执行流。

    workspaceSize

    Input

    void *

    swapLast2Axes算子所需要的workspace。

规格约束

  • swapLast2AxesGetWorkspaceSize:无。
  • swapLast2Axes
    • 输入的最大元素数为3600000000 ([60000, 60000]以内);
    • 算子输入shape若为[k,x,y],则算子输出shape为[k,y,x];
    • 算子实际计算时,不支持ND高维度运算(不支持维度>3的运算)。