文件最后提交记录最后更新时间
1 天前
1 天前
1 天前
1 天前
1 天前
1 天前
18 小时前
12 天前
24 天前
README.md

ScatterElementsV2

产品支持情况

产品 是否支持
Ascend 950PR/Ascend 950DT
Atlas A3 训练系列产品/Atlas A3 推理系列产品
Atlas A2 训练系列产品/Atlas A2 推理系列产品
Atlas 200I/500 A2 推理产品 ×
Atlas 推理系列产品 ×
Atlas 训练系列产品 ×

功能说明

  • 算子功能: 将tensor src中的值按指定的轴和方向以及对应的位置关系逐个替换/累加/累乘至tensor self中。

  • 示例: 对于一个3D tensor,self会按照如下的规则进行更新:

    self[index[i][j][k]][j][k] += src[i][j][k] # 如果dim == 0 && reduction == 1
    self[i][index[i][j][k]][k] *= src[i][j][k] # 如果dim == 1 && reduction == 2
    self[i][j][index[i][j][k]] = src[i][j][k]  # 如果dim == 2 && reduction == 0
    

    在计算时需要满足以下要求:

    • self、index和src的维度数量必须相同。
    • 对于每一个维度d,有index.size(d) <= src.size(d)的限制。
    • 对于每一个维度d,如果d != dim,有index.size(d) <= self.size(d)的限制。
    • dim的值的大小必须在 [-self的维度数量, self的维度数量-1] 之间。
    • self的维度数应该小于等于8。
    • index中对应维度dim的值的大小必须在[0, self.size(dim)-1]之间。

参数说明

参数名 输入/输出/属性 描述 数据类型 数据格式
self 输入 公式中的`self`,Device侧的aclTensor。 UINT8、INT8、INT16、INT32、INT64、BOOL、FLOAT16、FLOAT32、DOUBLE、COMPLEX64、COMPLEX128、BFLOAT16 ND
dim 输入 用来scatter的维度,数据类型为INT64。 int64_t -
index 输入 公式中的`index`,Device侧的aclTensor。 INT32、INT64。 ND
src 输入 公式中的`src`,Device侧的aclTensor。 UINT8、INT8、INT16、INT32、INT64、BOOL、FLOAT16、FLOAT32、DOUBLE、COMPLEX64、COMPLEX128、BFLOAT16 ND
reduction 输入 Host侧的字符串,选择应用的reduction操作。 string -
out 输出 公式中的输出。 FLOAT、FLOAT16、DOUBLE、BFLOAT16、INT8、INT16、INT32、INT64、UINT8、BOOL ND

约束说明

调用说明

调用方式 调用样例 说明
aclnn调用 test_aclnn_scatter 通过aclnnScatter&aclnnInplaceScatter接口方式调用ScatterElementsV2算子。