torch.sparse.mm
torch.sparse.mm()
  Performs a matrix multiplication of the sparse matrix "mat1" and
  the (sparse or strided) matrix "mat2". Similar to "torch.mm()",
  if "mat1" is a (n \times m) tensor, "mat2" is a (m \times p)
  tensor, out will be a (n \times p) tensor. When "mat1" is a COO
  tensor it must have *sparse_dim = 2*. When inputs are COO
  tensors, this function also supports backward for both inputs.

  Supports both CSR and COO storage formats.

Note:
 This function doesn't support computing derivaties with respect
 to CSR matrices.

 Args:
    mat1 (Tensor): the first sparse matrix to be multiplied mat2
    (Tensor): the second matrix to be multiplied, which could be
    sparse or dense

 Shape:
    The format of the output tensor of this function follows: -
    sparse x sparse -> sparse - sparse x dense -> dense

 Example:

    >>> a = torch.randn(2, 3).to_sparse().requires_grad_(True)
