固定维度的指定下标加上某个特定值。
1 2 3 4 5 6 7 8 9 10 | struct IndexAddParam { enum IndexType { INDEX_UNDEFINED = 0, INDEX_ADD, INDEX_ADD_VALID, }; IndexType indexType = INDEX_UNDEFINED; int64_t axis = 0; uint8_t rsv[16] = {0}; }; |
成员名称 |
类型 |
默认值 |
取值范围 |
是否必选 |
描述 |
---|---|---|---|---|---|
indexType |
IndexType |
INDEX_UNDEFINED |
0,1,2 |
是 |
操作类型。
|
axis |
int64_t |
0 |
|
否 |
输入tensor需加上updates更新值的轴。
|
rsv[16] |
uint8_t |
{0} |
[0] |
否 |
预留参数。 |
参数 |
维度 |
数据类型 |
格式 |
描述 |
---|---|---|---|---|
var |
[dim_0, ..., dim_n] |
float16/bf16 |
ND |
输入tensor。被加数,输入为零,原地被加后作为输出。 |
indices |
[dim_x] |
int32 |
ND |
输入tensor。指定固定维度的指定下标。dim_min = min(dim_x, dim_axis),值域为[0, dim_min),且前dim_min个值不重复。 |
updates |
[dim_0, ..., dim_n] |
float16/bf16 |
ND |
输入tensor。加数,根据indices的值加到var对应位置。维度数与var一致。索引为axis的维度为dim_x,即dim_axis == dim_x。 |
alpha |
[1] |
float16/bf16 |
ND |
输入tensor。累加次数。 |
output |
[dim_0, ..., dim_n] |
float16/bf16 |
ND |
输出tensor。与var为同一个Tensor,即二者数据类型、数据格式和地址等所有属性均相同。 |
min(x, y)表示取x和y两个数中的较小值。 dim_axis表示var、updates和output在索引为axis的维度大小,即:若axis为0,则dim_axis对应第0维大小d_0。 |
参数 |
维度 |
数据类型 |
格式 |
描述 |
---|---|---|---|---|
var |
[dim_1, dim_2] |
float16/bf16 |
ND |
输入tensor。被加数,输入为零,原地被加后作为输出。 |
indices |
[dim_0] |
int32 |
ND |
输入tensor。指定固定维度的指定下标。值域范围为[0, dim_1)。 |
updates |
[dim_0, dim_2] |
float16/bf16 |
ND |
输入tensor。加数,根据indices的值加到var对应位置。 |
validIndicesNum |
[1] |
int32 |
ND |
输入tensor。indices的有效长度。值域范围为[0, dim_0]。 |
output |
[dim_1, dim_2] |
float16/bf16 |
ND |
输出tensor。与var为同一个Tensor,即二者数据类型、数据格式和地址等所有属性均相同。 |
dim_2取值范围为(0, 8192]。 |