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

2020-07-17 21:45发布

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?

2条回答
Animai°情兽
2楼-- · 2020-07-17 22:33

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

查看更多
▲ chillily
3楼-- · 2020-07-17 22:39

So, a tensor have multiple dimensions, ordered as in the following figure. This is a forward indexing, but there is a backward one. For backward indexing a minus is used. For example:

-1 will 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

查看更多
登录 后发表回答