mindspore.nn.SparseToDense
- class mindspore.nn.SparseToDense[源代码]
将稀疏Tensor(COO Tensor)转换为稠密Tensor。
在Python中,为了方便使用,三个Tensor被收集到一个SparseTensor类中。MindSpore使用三个独立的稠密Tensor: indices 、 values 和 dense_shape 来表示稀疏Tensor。在调用
mindspore.ops.SparseToDense
之前,可以单独的将 indices 、 values 和 dense_shape 传递给稀疏Tensor对象。输入:
coo_tensor (
mindspore.COOTensor
) - 要转换的稀疏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]]