dgl.sparse.diag

dgl.sparse.diag(val: Tensor, shape: Tuple[int, int] | None = None) SparseMatrix[source]

基于对角线值创建一个稀疏矩阵。

Parameters:
  • val (torch.Tensor) – 矩阵的对角线,形状为 (N)(N, D)

  • 形状 (元组[整数, 整数], 可选) – 如果指定,len(val) 必须等于 min(shape), 否则,它将从 val 推断,即 (N, N)

Returns:

稀疏矩阵

Return type:

SparseMatrix

示例

案例1: 5x5对角矩阵,对角线上有标量值

>>> import torch
>>> val = torch.ones(5)
>>> dglsp.diag(val)
SparseMatrix(indices=tensor([[0, 1, 2, 3, 4],
                             [0, 1, 2, 3, 4]]),
             values=tensor([1., 1., 1., 1., 1.]),
             shape=(5, 5), nnz=5)

案例2:5乘10的对角矩阵,对角线上有标量值

>>> val = torch.ones(5)
>>> dglsp.diag(val, shape=(5, 10))
SparseMatrix(indices=tensor([[0, 1, 2, 3, 4],
                             [0, 1, 2, 3, 4]]),
             values=tensor([1., 1., 1., 1., 1.]),
             shape=(5, 10), nnz=5)

案例3:5x5对角矩阵,对角线上有向量值

>>> val = torch.randn(5, 3)
>>> D = dglsp.diag(val)
>>> D.shape
(5, 5)
>>> D.nnz
5