scatter_nd_add

    该OP通过对Tensor中的单个值或切片应用稀疏加法,从而得到输出的Tensor。

    x 是维度为 R 的张量。 index 是维度为 K 的张量。因此, index 的形状是

    ,其中

    scatter_nd_add - 图1

    的张量,它的形状是 index.shape[:−1]+x.shape[index.shape[−1]:]index.shape[:−1]+x.shape[index.shape[−1]:] 。

    根据 index 的 [i0,i1,…,iK−2][i0,i1,…,iK−2] 得到相应的 切片,将其加到根据 index 的最后一维得到 x 切片上,从而得到最终的输出张量。

    示例:

    参数:

    • index (Tensor) - 输入的索引张量,数据类型为非负int32或非负int64。它的维度 index.ndim 必须大于1,并且 index.shape[-1] <= x.ndim

    • updates (Tensor) - 输入的更新张量,它必须和 x 有相同的数据类型。形状必须是 index.shape[:-1] + x.shape[index.shape[-1]:]

    返回:数据类型和形状都与 x 相同的Tensor。

    返回类型:Tensor

    1. import numpy as np
    2. x = paddle.rand(shape=[3, 5, 9, 10], dtype='float32')
    3. index_data = np.array([[1, 1],
    4. [0, 1],
    5. [1, 3]]).astype(np.int64)