| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 7 小时前 | ||
| 17 天前 | ||
| 17 天前 | ||
| 3 天前 | ||
| 17 天前 | ||
| 17 天前 | ||
| 17 天前 | ||
| 17 天前 | ||
| 17 天前 | ||
| 1 个月前 | ||
| 1 个月前 |
ScatterElements
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR/Ascend 950DT | √ |
| Atlas A3 训练系列产品/Atlas A3 推理系列产品 | √ |
| Atlas A2 训练系列产品/Atlas A2 推理系列产品 | √ |
| Atlas 200I/500 A2 推理产品 | × |
| Atlas 推理系列产品 | × |
| Atlas 训练系列产品 | × |
功能说明
-
算子功能: 将tensor updates中的值按指定的轴和方向以及对应的位置关系逐个替换/累加/累乘至输出tensor中,输出tensor非更新位置的值和输入tensor一致。
-
示例: 对于一个3D tensor,输出会按照如下的规则进行更新:
y[indices[i][j][k]][j][k] += updates[i][j][k] # 如果dim == 0 && reduction == 1 y[i][indices[i][j][k]][k] *= updates[i][j][k] # 如果dim == 1 && reduction == 2 y[i][j][indices[i][j][k]] = updates[i][j][k] # 如果dim == 2 && reduction == 0在计算时需要满足以下要求:
- data、indices和updates的维度数量必须相同。
- 对于每一个维度d,有indices.size(d) <= updates.size(d)的限制。
- 对于每一个维度d,如果d != dim,有indices.size(d) <= data.size(d)的限制。
- dim的值的大小必须在 [-data的维度数量, data的维度数量-1] 之间。
- data的维度数应该小于等于8。
- indices的值大小必须在[0, data.size(dim)-1]之间。
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| data | 输入 | 公式中的`data`,Device侧的aclTensor。 | COMPLEX128, COMPLEX64, DOUBLE, FLOAT32, FLOAT16, INT16, INT32, INT64, INT8, QINT32, QINT8, QUINT8, UINT16, UINT32, UINT64, UINT8, BFLOAT16, COMPLEX32 | ND |
| dim | 输入 | 用来scatter的维度,数据类型为INT64。 | int64_t | - |
| indices | 输入 | 公式中的`indices`,Device侧的aclTensor。 | INT32、INT64。 | ND |
| updates | 输入 | 公式中的`updates`,Device侧的aclTensor。 | COMPLEX128, COMPLEX64, DOUBLE, FLOAT32, FLOAT16, INT16, INT32, INT64, INT8, QINT32, QINT8, QUINT8, UINT16, UINT32, UINT64, UINT8, BFLOAT16, COMPLEX32 | ND |
| reduction | 输入 | Host侧的字符串,选择应用的reduction操作。 | string | - |
| out | 输出 | 公式中的输出。 | COMPLEX128, COMPLEX64, DOUBLE, FLOAT32, FLOAT16, INT16, INT32, INT64, INT8, QINT32, QINT8, QUINT8, UINT16, UINT32, UINT64, UINT8, BFLOAT16, COMPLEX32 | ND |
约束说明
无
调用说明
| 调用方式 | 样例代码 | 说明 |
|---|---|---|
| 图模式调用 | test_geir_scatter_elements | 通过算子IR构图方式调用ScatterElements算子。 |