Table of Contents
Shortcuts

# torch.sparse.sum

torch.sparse.sum(input, dim=None, dtype=None)

  Returns the sum of each row of the sparse tensor `input` in the given dimensions `dim`. If `dim` is a list of dimensions, reduce over all of them. When sum over all `sparse_dim`, this method returns a dense tensor instead of a sparse tensor.

  All summed `dim` are squeezed (see `torch.squeeze()`), resulting an output tensor having `dim` fewer dimensions than `input`.

  During backward, only gradients at `nnz` locations of `input` will propagate back. Note that the gradients of `input` is coalesced.

  Parameters:

    - input (Tensor) – the input sparse tensor

    - dim (int or tuple of ints) – a dimension or a list of dimensions to reduce. Default: reduce over all dims.

    - dtype (`torch.dtype`, optional) – the desired data type of returned Tensor. Default: dtype of `input`.

  Return type:

    Tensor

  Example:

      >>> nnz = 3
      >>> dims = [5, 5, 2, 3]
      >>> I = torch.cat([torch.randint(0, dims[0], size=(nnz,)),
                         torch.randint(0, dims[1], size=(nnz,))], 0).reshape(2, nnz)
      >>> V = torch.randn(nnz, dims[2], dims[3])
      >>> size = torch.Size(dims)
      >>> S = torch.sparse_coo_tensor(I, V, size)
      >>> S
      tensor(indices=tensor([[2, 0, 3],
                             [2, 4, 1]]),
             values=tensor([[[-0.6438, -1.6467,  1.4004],
                             [ 0.3411,  0.0918, -0.2312]],

                            [[ 0.5348,  0.0634, -2.0494],
                             [-0.7125, -1.0646,  2.1844]],

                            [[ 0.1276,  0.1874, -0.6334],
                             [-1.9682, -0.5340,  0.7483]]]),
             size=(5, 5, 2, 3), nnz=3, layout=torch.sparse_coo)

      # when sum over only part of sparse_dims, return a sparse tensor
      >>> torch.sparse.sum(S, [1, 3])
      tensor(indices=tensor([[0, 2, 3]]),
             values=tensor([[-1.4512,  0.4073],
                            [-0.8901,  0.2017],
                            [-0.3183, -1.7539]]),
             size=(5, 2), nnz=3, layout=torch.sparse_coo)

      # when sum over all sparse dim, return a dense tensor
      # with summed dims squeezed
      >>> torch.sparse.sum(S, [0, 1, 3])
      tensor([-2.6596, -1.1450])

## Docs

Access comprehensive developer documentation for PyTorch

View Docs

## Tutorials

Get in-depth tutorials for beginners and advanced developers

View Tutorials

## Resources

Find development resources and get your questions answered

View Resources

To analyze traffic and optimize your experience, we serve cookies on this site. By clicking or navigating, you agree to allow our usage of cookies. As the current maintainers of this site, Facebook’s Cookies Policy applies. Learn more, including about available controls: Cookies Policy.