IndexAddOperation
功能
固定维度的指定下标加上某个特定值。

定义
struct IndexAddParam {
    enum IndexType {
        INDEX_UNDEFINED = 0,
        INDEX_ADD,
        INDEX_ADD_VALID, 
    };
    IndexType indexType = INDEX_UNDEFINED;
    int64_t axis = 0;
};
参数列表
| 成员名称 | 类型 | 默认值 | 描述 | 
|---|---|---|---|
| indexType | IndexType | INDEX_UNDEFINED | 操作类型。 
 | 
| axis | int64_t | 0 | 输入tensor需加上updates更新值的轴。 
 | 
输入输出描述(INDEX_ADD)
| 参数 | 维度 | 数据类型 | 格式 | 描述 | 
|---|---|---|---|---|
| var | [d_0, ..., d_n] | float16 | ND | 输入tensor。被加数,输入为零,原地被加后作为输出。 | 
| indices | [d_x] | int32 | ND | 输入tensor。指定固定维度的指定下标。d_min = min(d_x, d_axis),值域为[0, d_min),且前d_min个值不重复。 | 
| updates | [d_0, ..., d_n] | float16 | ND | 输入tensor。加数,根据indices的值加到var对应位置。维度数与var一致。索引为axis的维度为d_x,即d_axis == d_x。 | 
| alpha | [1] | float16 | ND | 输入tensor。累加次数。 | 
| output | [d_0, ..., d_n] | float16 | ND | 输出tensor。与var为同一个Tensor,即二者数据类型、数据格式和地址等所有属性均相同。 | 
| min(x, y)表示取x和y两个数中的较小值。 d_axis表示var、updates和output在索引为axis的维度大小,即:若axis为0,则d_axis对应第0维大小d_0。 | ||||
输入输出描述(INDEX_ADD_VALID)
| 参数 | 维度 | 数据类型 | 格式 | 描述 | 
|---|---|---|---|---|
| var | [d_1, d_2] | float16 | ND | 输入tensor。被加数,输入为零,原地被加后作为输出。 | 
| indices | [d_0] | int32 | ND | 输入tensor。指定固定维度的指定下标。指定固定维度的指定下标。值域范围为[0, d_1)。 | 
| updates | [d_0, d_2] | float16 | ND | 输入tensor。加数,根据indices的值加到var对应位置。 | 
| validIndicesNum | [1] | int32 | ND | 输入tensor。indices的有效长度。值域范围为[0, d_0]。 | 
| output | [d_1, d_2] | float16 | ND | 输出tensor。与var为同一个Tensor,即二者数据类型、数据格式和地址等所有属性均相同。 | 
| d_2取值范围为(0, 8192]。 | ||||
接口调用示例
- indexType = INDEX_ADD
- indexType = INDEX_ADD_VALID