dgl.sparse.SparseMatrix.smax

SparseMatrix.smax(dim: int | None = None)

计算给定维度 diminput 稀疏矩阵的非零值的最大值。

规约不计算零值。如果待规约的行或列没有任何非零值,则结果为 0。

参数:
  • input (SparseMatrix) – 输入稀疏矩阵

  • dim (int, 可选) –

    规约的维度,必须是 0(按行)、1(按列)或 None(同时按行和列)。

    如果 dim 是 None,它会同时规约稀疏矩阵的行和列,产生形状为 input.val.shape[1:] 的张量。否则,它在行 (dim=0) 或列 (dim=1) 维度上进行规约,产生形状为 (input.shape[1],) + input.val.shape[1:](input.shape[0],) + input.val.shape[1:] 的张量。

返回:

规约后的张量

返回类型:

torch.Tensor

示例

示例 1:标量值稀疏矩阵

>>> indices = torch.tensor([[0, 1, 1], [0, 0, 2]])
>>> val = torch.tensor([1, 1, 2])
>>> A = dglsp.spmatrix(indices, val, shape=(4, 3))
>>> dglsp.smax(A)
tensor(2)
>>> dglsp.smax(A, 0)
tensor([1, 0, 2])
>>> dglsp.smax(A, 1)
tensor([1, 2, 0, 0])

示例 2:向量值稀疏矩阵

>>> indices = torch.tensor([[0, 1, 1], [0, 0, 2]])
>>> val = torch.tensor([[1, 2], [2, 1], [2, 2]])
>>> A = dglsp.spmatrix(indices, val, shape=(4, 3))
>>> dglsp.smax(A)
tensor([2, 2])
>>> dglsp.smax(A, 1)
tensor([[1, 2],
        [2, 2],
        [0, 0],
        [0, 0]])