what does dim=-1 or -2 mean in torch.sum()?
Asked Answered
D

2

18

let me take a 2D matrix as example:

mat = torch.arange(9).view(3, -1)

tensor([[0, 1, 2],
        [3, 4, 5],
        [6, 7, 8]])

torch.sum(mat, dim=-2)

tensor([ 9, 12, 15])

I find the result of torch.sum(mat, dim=-2) is equal to torch.sum(mat, dim=0) and dim=-1 equal to dim=1. My question is how to understand the negative dimension here. What if the input matrix has 3 or more dimensions?

Dishrag answered 12/1, 2020 at 10:10 Comment(1)
Does this answer your question? What is a dimensional range of [-1,0] in Pytorch?Maddeu
A
13

The minus essentially means you go backwards through the dimensions. Let A be a n-dimensional matrix. Then dim=n-1=-1, dim=n-2=-2, ..., dim=1=-(n-1), dim=0=-n. See the numpy doc for more information, as pytorch is heavily based on numpy.

Ably answered 12/1, 2020 at 10:28 Comment(0)
B
33

A tensor has multiple dimensions, ordered as in the following figure. There is a forward and backward indexing. Forward indexing uses positive integers, backward indexing uses negative integers.

Example:

-1 will be the last one, in our case it will be dim=2

-2 will be dim=1

-3 will be dim=0

enter image description here

Bendwise answered 12/1, 2020 at 10:52 Comment(2)
Why is there a dimension zero? Does this refer to collections starting from zero?Blackcock
It is common to start counting starting from zero instead of 1Ably
A
13

The minus essentially means you go backwards through the dimensions. Let A be a n-dimensional matrix. Then dim=n-1=-1, dim=n-2=-2, ..., dim=1=-(n-1), dim=0=-n. See the numpy doc for more information, as pytorch is heavily based on numpy.

Ably answered 12/1, 2020 at 10:28 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.