初学深度学习,遇到shape[-1],了解了一下他的含义

  1. 首先需要知道,对于二维张量,shape[0]代表行数,shape[1]代表列数,同理三维张量还有shape[2];
  2. 一般来说-1代表最后一个,所以shape[-1]代表最后一个维度,如在二维张量里,shape[-1]表示列数,注意,即使是一维行向量,shape[-1]表示行向量的元素总数,换言之也是列数:
import torch

x = torch.tensor([2, 3, 4, 8])
print(x.shape[-1])

# output如下
4

Process finished with exit code 0

需要注意的小细节:

  1.  然后就是,需要注意turple,list等没有shape属性,需要替换成张量tensor
  2.  注意,即使是三维,由于shape[0]表示向量数,所以shape[1]是行数,那么shape[2]还是列数,所以shape[-1]最后一维还是列数
import torch

x = torch.tensor([[2, 3, 4, 3, 6, 8],
                 [1, 8, 9, 5, 0, 1],
                 [2, 0, 2, 2, 7, 1]])
print(x.shape[-1])

 输出是:6

6

Process finished with exit code 0

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐