tensor.size(-1) 中的 -1 是什么意思?

sol*_*lst 2 python pytorch

我在 Pytorch 文档中看到过类似的东西,

import torch

a = torch.tensor([1, 2])
a.size() # torch.Size([2])
a.size(-1) # 2
Run Code Online (Sandbox Code Playgroud)

这是如何运作的?我没有找到说明。谢谢,

小智 6

a.size(-1)指的是最后一个维度。例如,如果 x 的形状是 (10,20) 那么 x.size(-1) 指的是第二维,即 20。看看下面的例子:

import torch
a= torch.zeros((2,5)) # a is matrix of 2 rows and 5 columns all elements are 0
#size gives a 1d tensor containing the shapes
a.size(-1)# refers to the last element in the tensor
Run Code Online (Sandbox Code Playgroud)

这相当于:

a_size= a.size()
a_size(-1)
Run Code Online (Sandbox Code Playgroud)

希望这对你有帮助。

  • @akshayk07 如果代码是`t.size()[-1]`,情况就是这样。但是`t.size(-1)` 不一样(虽然它碰巧有同样的效果)。 (2认同)