dgl.sparse.SparseMatrix.smax
- SparseMatrix.smax(dim: int | None = None)
计算给定维度
dim
上input
稀疏矩阵的非零值的最大值。规约不计算零值。如果待规约的行或列没有任何非零值,则结果为 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]])