mindspore.nn.SparseToDense

class mindspore.nn.SparseToDense[源代码]

将稀疏Tensor(COO Tensor)转换为稠密Tensor。

在Python中,为了方便使用,三个Tensor被收集到一个SparseTensor类中。MindSpore使用三个独立的稠密Tensor: indicesvaluesdense_shape 来表示稀疏Tensor。在调用 mindspore.ops.SparseToDense 之前,可以单独的将 indicesvaluesdense_shape 传递给稀疏Tensor对象。

输入:

输出:

Tensor,由稀疏Tensor转换而成。

异常:

  • TypeError - sparse_tensor.indices 不是Tensor。

  • TypeError - sparse_tensor.values 不是Tensor。

  • TypeError - sparse_tensor.dense_shape 不是tuple。

支持平台:

CPU

样例:

>>> import mindspore as ms
>>> from mindspore import Tensor, COOTensor
>>> import mindspore.nn as nn
>>> ms.set_context(mode=ms.PYNATIVE_MODE)
>>> indices = Tensor([[0, 1], [1, 2]])
>>> values = Tensor([1, 2], dtype=ms.int32)
>>> dense_shape = (3, 4)
>>> class Net(nn.Cell):
...     def __init__(self, dense_shape):
...         super(Net, self).__init__()
...         self.dense_shape = dense_shape
...         self.op = nn.SparseToDense()
...
...     def construct(self, indices, values):
...         x = COOTensor(indices, values, self.dense_shape)
...         return self.op(x)
...
>>> print(Net(dense_shape)(indices, values))
[[0 1 0 0]
 [0 0 2 0]
 [0 0 0 0]]