dgl.sparse.diag

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

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

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

  • shape (tuple[int, int], optional) – 如果指定,len(val) 必须等于 min(shape),否则它将从 val 推断,即 (N, N)

返回:

稀疏矩阵

返回类型:

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: 对角线上带有标量值的 5x10 对角矩阵

>>> 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