dgl.sparse.sddmmΒΆ
-
dgl.sparse.
sddmm
(A: dgl.sparse.sparse_matrix.SparseMatrix, X1: torch.Tensor, X2: torch.Tensor) → dgl.sparse.sparse_matrix.SparseMatrix[source]ΒΆ Sampled-Dense-Dense Matrix Multiplication (SDDMM).
sddmm
matrix-multiplies two dense matricesX1
andX2
, then elementwise-multiplies the result with sparse matrixA
at the nonzero locations.Mathematically
sddmm
is formulated as:\[out = (X1 @ X2) * A\]In particular,
X1
andX2
can be 1-D, thenX1 @ X2
becomes 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)