dgl.sparse.sddmm
- dgl.sparse.sddmm(A: SparseMatrix, X1: Tensor, X2: Tensor) SparseMatrix[source]
Sampled-Dense-Dense Matrix Multiplication (SDDMM).
sddmmmatrix-multiplies two dense matricesX1andX2, then elementwise-multiplies the result with sparse matrixAat the nonzero locations.Mathematically
sddmmis formulated as:\[out = (X1 @ X2) * A\]In particular,
X1andX2can be 1-D, thenX1 @ X2becomes the out-product of the two vectors (which results in a matrix).- Parameters:
A (SparseMatrix) – Sparse matrix of shape
(L, N)X1 (torch.Tensor) – Dense matrix of shape
(L, M)or(L,)X2 (torch.Tensor) – Dense matrix of shape
(M, N)or(N,)
- Returns:
Sparse matrix of shape
(L, N)- Return type:
Examples
>>> indices = torch.tensor([[1, 1, 2], [2, 3, 3]]) >>> val = torch.arange(1, 4).float() >>> A = dglsp.spmatrix(indices, val, (3, 4)) >>> X1 = torch.randn(3, 5) >>> X2 = torch.randn(5, 4) >>> dglsp.sddmm(A, X1, X2) SparseMatrix(indices=tensor([[1, 1, 2], [2, 3, 3]]), values=tensor([-1.6585, -3.9714, -0.5406]), shape=(3, 4), nnz=3)