mindspore.ops.csr_add

mindspore.ops.csr_add(a: CSRTensor, b: CSRTensor, alpha: Tensor, beta: Tensor)[源代码]

返回alpha * csr_a + beta * csr_b的结果,其中csr_a和csr_b是CSRTensor,alpha和beta是Tensor。

说明

用户需要确保输入的稀疏算子的合法性。否则,算子将返回错误结果。 例如,当同一个位置有多个元素时,算子可能会返回错误结果或执行失败。

参数:
  • a (CSRTensor) - 稀疏的 CSRTensor。

  • b (CSRTensor) - 稀疏的 CSRTensor。

  • alpha (Tensor) - 稠密张量,shape必须可以广播到 a

  • beta (Tensor) - 稠密张量,shape必须可以广播到 b

返回:

返回一个包含以下数据的CSRTensor。

  • indptr - 指示每行中非零值的起始点和结束点。

  • indices - 输入中所有非零值的列位置。

  • values - 稠密张量的非零值。

  • shape - csr_tensor 的形状。

支持平台:

GPU CPU

样例:

>>> import mindspore.common.dtype as mstype
>>> from mindspore import Tensor, CSRTensor
>>> import mindspore.ops as ops
>>> a_indptr = Tensor([0, 1, 2], dtype=mstype.int32)
>>> a_indices = Tensor([0, 1], dtype=mstype.int32)
>>> a_values = Tensor([1, 2], dtype=mstype.float32)
>>> shape = (2, 6)
>>> b_indptr = Tensor([0, 1, 2], dtype=mstype.int32)
>>> b_indices = Tensor([0, 1], dtype=mstype.int32)
>>> b_values = Tensor([1, 2], dtype=mstype.float32)
>>> alpha = Tensor(1, mstype.float32)
>>> beta = Tensor(1, mstype.float32)
>>> csra = CSRTensor(a_indptr, a_indices, a_values, shape)
>>> csrb = CSRTensor(b_indptr, b_indices, b_values, shape)
>>> out = ops.csr_add(csra, csrb, alpha, beta)
>>> print(out)
CSRTensor(shape=[2,6], dtype=Float32,
          indptr=Tensor(shape=[3], dtype=Int32, value = [0, 1, 2]),
          indices=Tensor(shape=[2], dtype=Int32, value = [0, 1]),
          values=Tensor(shape=[2], dtype=Float32, value = [2.0, 4.0]))