dgl.sparse.SparseMatrix.smean
- SparseMatrix.smean(dim: int | None = None)
计算稀疏矩阵
input
中非零值的平均值,沿着给定的维度dim
。减少操作不计算零值。如果要减少的行或列没有任何非零值,结果将为0。
- Parameters:
input (SparseMatrix) – The input sparse matrix
dim (int, optional) –
要减少的维度,必须是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:]
的张量。
- Returns:
简化张量
- Return type:
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.smean(A) tensor(1.3333) >>> dglsp.smean(A, 0) tensor([1., 0., 2.]) >>> dglsp.smean(A, 1) tensor([1.0000, 1.5000, 0.0000, 0.0000])
案例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.smean(A) tensor([1.6667, 1.6667]) >>> dglsp.smean(A, 0) tensor([[1.5000, 1.5000], [0.0000, 0.0000], [2.0000, 2.0000]]) >>> dglsp.smean(A, 1) tensor([[1.0000, 2.0000], [2.0000, 1.5000], [0.0000, 0.0000], [0.0000, 0.0000]])