mindspore/docs/api/api_python/ops/mindspore.ops.TensorScatter...

27 lines
1.5 KiB
ReStructuredText
Raw Normal View History

mindspore.ops.TensorScatterSub
===============================
.. py:class:: mindspore.ops.TensorScatterSub
根据指定的更新值和输入索引通过减法运算更新输入Tensor的值。当同一个索引有多个不同值时更新的结果将分别减去这些值。此操作几乎等同于使用ScatterNdSub只是更新后的结果是通过算子output返回而不是直接原地更新input。
`indices` 的最后一个轴是每个索引向量的深度。对于每个索引向量, `updates` 中必须有相应的值。`updates` 的shape应该等于 `input_x[indices]` 的shape。有关更多详细信息请参见使用用例。
.. note::
如果 `indices` 的某些值超出范围,则相应的 `updates` 不会更新为 `input_x` ,而不是抛出索引错误。
**输入:**
- **input_x** (Tensor) - 输入Tensor。input_x的维度必须不小于indices.shape[-1]。
- **indices** (Tensor) - 输入Tensor的索引数据类型为int32或int64的其rank必须至少为2。
- **updates** (Tensor) - 指定与 `input_x` 相减操作的Tensor其数据类型与输入相同。updates.shape应等于indices.shape[:-1] + input_x.shape[indices.shape[-1]:]。
**输出:**
Tensorshape和数据类型与输入 `input_x` 相同。
**异常:**
- **TypeError** - `indices` 的数据类型既不是int32也不是int64。
- **ValueError** - `input_x` 的shape长度小于 `indices` 的shape的最后一个维度。