mindspore.mint.scatter_add
==========================

.. py:function:: mindspore.mint.scatter_add(input, dim, index, src)

    将 `src` 中所有的元素添加到 `input` 中 `index` 指定的索引处。
    其中 `dim` 控制scatter_add操作的轴。
    `input` 、 `index` 、 `src` 三者的rank都必须大于或等于1。

    下面看一个三维的例子:

    .. code-block::

        input[index[i][j][k]][j][k] += src[i][j][k]  # if dim == 0

        input[i][index[i][j][k]][k] += src[i][j][k]  # if dim == 1

        input[i][j][index[i][j][k]] += src[i][j][k]  # if dim == 2

    参数:
        - **input** (Tensor) - 输入Tensor。rank必须大于等于1。
        - **dim** (int) - `input` 执行scatter_add操作的轴。取值范围是[-r, r),其中r是 `input` 的rank。默认值: ``0`` 。
        - **index** (Tensor) - `input` 要进行scatter_add操作的目标索引。数据类型为int32或int64,rank必须和 `input` 一致。除了 `dim` 指定的维度, `index` 的每一维的size都需要小于等于 `input` 对应维度的size。
        - **src** (Tensor) - 指定与 `input` 进行scatter_add操作的Tensor,其数据类型与 `input` 类型相同,shape中每一维的size必须大于等于 `index` 。

    返回:
        Tensor,shape和数据类型与输入 `input` 相同。

    异常:
        - **TypeError** - `index` 的数据类型不满足int32或int64。
        - **ValueError** - `input` 、 `index` 和 `src` 中,任意一者的rank小于1。
        - **ValueError** - `input`, `index` 和 `src` 的rank不一致。
        - **ValueError** - 除了 `dim` 指定的维度, `index` 的任意维的size大于 `input` 对应维度的size。
        - **ValueError** - `src` 任意维度size小于 `index` 对应维度的size。