mindspore.ops.sparse_add

mindspore.ops.sparse_add(x1: COOTensor, x2: COOTensor, thresh: Tensor)[源代码]

两个COOTensor相加,根据相加的结果与 thresh 返回新的COOTensor。

参数:
  • x1 (COOTensor) - 一个操作数,与当前操作数相加。

  • x2 (COOTensor) - 另一个操作数,与当前操作数相加。

  • thresh (Tensor) - 零维。用来决定COOTensor.add结果中的value/index对是否出现的阈值。如果结果中value的数据类型为实数,则 thresh 的数据类型应该与它的数据类型一致。如果结果中value小于 thresh, 它将会被丢掉。

返回:

COOTensor,为两COOTensor相加后的结果。

异常:
  • ValueError - 如果操作数(x1/x2)的indices的维度不等于2。

  • ValueError - 如果操作数(x1/x2)的values的维度不等于1。

  • ValueError - 如果操作数(x1/x2)的shape的维度不等于1。

  • ValueError - 如果thresh的维度不等于0。

  • TypeError - 如果操作数(x1/x2)的indices的数据类型不为int64。

  • TypeError - 如果操作数(x1/x2)的shape的数据类型不为int64。

  • ValueError - 如果操作数(x1/x2)的indices的长度不等于它的values的长度。

  • TypeError - 如果操作数(x1/x2)的values的数据类型不为(int8/int16/int32/int64/float32/float64/complex64/complex128)中的任何一个。

  • TypeError - 如果thresh的数据类型不为(int8/int16/int32/int64/float32/float64)中的任何一个。

  • TypeError - 如果操作数x1的indices数据类型不等于x2的indices数据类型。

  • TypeError - 如果操作数x1的values数据类型不等于x2的values数据类型。

  • TypeError - 如果操作数x1的shape数据类型不等于x2的shape数据类型。

  • TypeError - 如果操作数(x1/x2)的values的数据类型与thresh数据类型不匹配。

支持平台:

CPU GPU

样例:

>>> from mindspore import Tensor, COOTensor
>>> from mindspore import dtype as mstype
>>> from mindspore import context
>>> from mindspore import ops
>>> indics0 = Tensor([[0, 1], [1, 2]], dtype=mstype.int64)
>>> values0 = Tensor([1, 2], dtype=mstype.int32)
>>> shape0 = (3, 4)
>>> input0 = COOTensor(indics0, values0, shape0)
>>> indics1 = Tensor([[0, 0], [1, 1]], dtype=mstype.int64)
>>> values1 = Tensor([3, 4], dtype=mstype.int32)
>>> shape1 = (3, 4)
>>> input1 = COOTensor(indics1, values1, shape1)
>>> thres = Tensor(0, dtype=mstype.int32)
>>> out = ops.sparse_add(input0, input1, thres)
>>> print(out)
COOTensor(shape = [3, 4], dtype = Int32, indices=Tensor(shape=[4, 2],
dtype = Int64, value=[[0 0], [0 1], [1 1], [1 2]]),  values=Tensor(shape[4],
dtype=Int32, value=[3 1 4 2]))