昇腾社区首页
中文
注册
开发者
下载

aclnnIndexSelect

产品支持情况

[object Object]undefined

功能说明

  • 接口功能:从输入Tensor的指定维度dim,按index中的下标序号提取元素,保存到out Tensor中。 例如,对于输入张量 self=[123456789]self=\begin{bmatrix}1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9\end{bmatrix} 和索引张量 index=[1, 0], self.index_select(0, index)的结果: y=[456123]y=\begin{bmatrix}4 & 5 & 6 \\ 1 & 2 & 3\end{bmatrix};

    x.index_select(1, index)的结果: y=[215487]y=\begin{bmatrix}2 & 1\\ 5 & 4\\8 & 7\end{bmatrix};

  • 计算公式:

    以三维张量为例, shape为(3,2,2)的张量 self =[[[1,2],[3,4]],[[5,6],[7,8]],[[9,10],[11,12]]]\begin{bmatrix}[[1,&2],&[3,&4]], \\ [[5,&6],&[7,&8]], \\ [[9,&10],&[11,&12]]\end{bmatrix} index=[1, 0], self张量dim=0、1、2对应的下标分别是lmnl、m、n, index是一维

    dim为0, index_select(0, index): I=index[i];    out[i][m][n][i][m][n] = self[I][m][n][I][m][n]

    dim为1, index_select(1, index): J=index[j];     out[l][j][n][l][j][n] = self[l][J][n][l][J][n]

    dim为2, index_select(2, index): K=index[k];   out[l][m][k][l][m][k] = self[l][m][K][l][m][K]

函数原型

每个算子分为,必须先调用“aclnnIndexSelectGetWorkspaceSize”接口获取计算所需workspace大小以及包含了算子计算流程的执行器,再调用“aclnnIndexSelect”接口执行计算。

[object Object]
[object Object]

aclnnIndexSelectGetWorkspaceSize

  • 参数说明

    [object Object]
    • [object Object]Atlas 推理系列产品[object Object]、[object Object]Atlas 训练系列产品[object Object]:数据类型不支持BFLOAT16。
  • 返回值

    aclnnStatus:返回状态码,具体参见

    第一段接口完成入参校验,出现以下场景时报错:

    [object Object]

aclnnIndexSelect

  • 参数说明

    [object Object]
  • 返回值

    aclnnStatus:返回状态码,具体参见

约束说明

  • 当self的shape为[]时,index的shape只能为[1]。

  • 确定性计算:

    • aclnnIndexSelect默认确定性实现。

调用示例

示例代码如下,仅供参考,具体编译和执行过程请参考

[object Object]