mindspore.ops.coo_concat

mindspore.ops.coo_concat(sp_input, concat_dim=0)[源代码]

根据指定的轴concat_dim对输入的COO Tensor(sp_input)进行合并操作。

警告

这是一个实验性API,后续可能修改或删除。目前只支持CPU。

参数:
  • sp_input (Union[list(COOTensor), tuple(COOTensor)]) - 输入的需要concat合并的稀疏张量。

  • concat_dim (scalar) - 指定需要合并的轴序号, 它的取值必须是在[-rank, rank)之内, 其中rank为 sp_input 中COOTensor的shape的维度值,默认值: 0

返回:

COOTensor,按concat_dim轴合并后的COOTensor。这个COOTensor的稠密shape值为: 非concat_dim轴shape与输入一致,concat_dim轴shape是所有输入对应轴shape的累加。

异常:
  • ValueError - 如果只有一个COOTensor输入,报错。

  • ValueError - 如果输入的COOTensor的shape维度大于3,COOTensor的构造会报错。目前COOTensor的shape维度只能为2。

支持平台:

CPU

样例:

>>> from mindspore import Tensor, ops, COOTensor
>>> from mindspore import dtype as mstype
>>> indices0 = Tensor([[0, 1], [1, 2]], dtype=mstype.int64)
>>> values0 = Tensor([1, 2], dtype=mstype.int32)
>>> shape0 = (3, 4)
>>> input0 = COOTensor(indices0, values0, shape0)
>>> indices1 = Tensor([[0, 0], [1, 1]], dtype=mstype.int64)
>>> values1 = Tensor([3, 4], dtype=mstype.int32)
>>> shape1 = (3, 4)
>>> input1 = COOTensor(indices1, values1, shape1)
>>> concat_dim = 1
>>> out = ops.coo_concat((input0, input1), concat_dim)
>>> print(out)
COOTensor(shape=[3, 8], dtype=Int32, indices=Tensor(shape=[4, 2], dtype=Int64, value=
[[0 1]
 [0 4]
 [1 2]
 [1 5]]), values=Tensor(shape=[4], dtype=Int32, value=[1 3 2 4]))