mindspore.COOTensor

class mindspore.COOTensor(indices=None, values=None, shape=None, coo_tensor=None)[源代码]

用来表示某一张量在给定索引上非零元素的集合,其中索引(indices)指示了每一个非零元素的位置。

对一个稠密Tensor dense 来说,它对应的COOTensor(indices, values, shape),满足 dense[indices[i]] = values[i]

如果 indices 是[[0, 1], [1, 2]], values 是[1, 2], shape 是(3, 4),那么它对应的稠密Tensor如下:

[[0, 1, 0, 0],
 [0, 0, 2, 0],
 [0, 0, 0, 0]]

Note

这是一个实验特性,在未来可能会发生API的变化。目前COOTensor中相同索引的值不会进行合并。

参数:

  • indices (Tensor) - 形状为 [N, ndims] 的二维整数张量,其中N和ndims分别表示稀疏张量中 values 的数量和COOTensor维度的数量。目前 ndims 只能为2。请确保indices的值在所给shape范围内。

  • values (Tensor) - 形状为 [N] 的一维张量,用来给 indices 中的每个元素提供数值。

  • shape (tuple(int)) - 形状为ndims的整数元组,用来指定稀疏矩阵的稠密形状。

  • coo_tensor (COOTensor) - COOTensor对象,用来初始化新的COOTensor。

返回:

COOTensor,由 indicesvaluesshape 组成。

样例:

>>> import mindspore as ms
>>> import mindspore.nn as nn
>>> from mindspore import Tensor, COOTensor
>>> indices = Tensor([[0, 1], [1, 2]], dtype=ms.int32)
>>> values = Tensor([1, 2], dtype=ms.float32)
>>> shape = (3, 4)
>>> x = COOTensor(indices, values, shape)
>>> print(x.values)
[1. 2.]
>>> print(x.indices)
[[0 1]
 [1 2]]
>>> print(x.shape)
(3, 4)
abs()[源代码]

对所有非零元素取绝对值,并返回新的COOTensor。

返回:

COOTensor。

支持平台:

Ascend GPU CPU

astype(dtype)[源代码]

返回指定数据类型的COOTensor。

参数:

  • dtype (Union[mindspore.dtype, numpy.dtype, str]) - 指定数据类型。

返回:

COOTensor。

支持平台:

Ascend GPU CPU

样例:

>>> import mindspore as ms
>>> from mindspore import Tensor, COOTensor
>>> indices = Tensor([[0, 1], [1, 2]], dtype=ms.int32)
>>> values = Tensor([1, 2], dtype=ms.float32)
>>> shape = (3, 4)
>>> coo_tensor = COOTensor(indices, values, shape)
>>> print(coo_tensor.astype(ms.float64).dtype)
Float64
property dtype

返回稀疏矩阵非零元素值数据类型。

property indices

返回COOTensor的索引值。

property itemsize

返回每个非零元素所占字节数。

property ndim

返回稀疏矩阵的稠密维度。

property shape

返回稀疏矩阵的稠密形状。

property size

返回稀疏矩阵非零元素值数量。

to_csr()[源代码]

将COOTensor转换为CSRTensor。

Note

如果运行后端是CPU,那么仅支持在安装了LLVM12.0.1的机器运行。

返回:

CSRTensor。

支持平台:

GPU CPU

to_dense()[源代码]

将COOTensor转换为稠密Tensor。

返回:

Tensor。

支持平台:

GPU

to_tuple()[源代码]

将COOTensor的索引,非零元素,以及形状信息作为tuple返回。

返回:

tuple(Tensor, Tensor, tuple(int))

支持平台:

Ascend GPU CPU

property values

返回COOTensor的非零元素值。