mindspore.ops.csr_add
- mindspore.ops.csr_add(a: CSRTensor, b: CSRTensor, alpha: Tensor, beta: Tensor)[源代码]
\(a\) 和 \(b\) 是CSRTensor,\(alpha\) 和 \(beta\) 是Tensor。
\[out = alpha * a + beta * b\]说明
用户需要确保输入的稀疏算子的合法性。否则,算子将返回错误结果。 例如,当同一个位置有多个元素时,算子可能会返回错误结果或执行失败。
- 参数:
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.00000000e+00 4.00000000e+00]))