确定shape的方法是调用shape属性,比如对于变量a,输出a.shape就可以得到a的shape。本文是为了理解a.shape的结果是怎么得来的。
固定
确定
脱去
具体的:
1,固定最外面的一对中括号
2,确定这对中括号内部有几组数据,有几写几,这个数就是当前维度
3,脱去这对括号
4,对于第3步得到的第一组数据重复以上3步,直至没有中括号可以固定
举例:
import torch
a = torch.Tensor(3)
print(a)
print(a.shape)
a_2 = a.unsqueeze(-1)
print(a_2)
print(a_2.shape)
输出:
tensor([-1.1411e+26, 3.0732e-41, -1.1309e+26])
torch.Size([3])
tensor([[-1.1411e+26],
[ 3.0732e-41],
[-1.1309e+26]])
torch.Size([3, 1])
a_3 = a_2.unsqueeze(-1)
print(a_3)
print(a_3.shape)
输出:
tensor([[[-1.1253e+26]],
[[ 3.0732e-41]],
[[-1.1256e+26]]])
torch.Size([3, 1, 1])
以a_3举例:
1,固定最外面一对中括号
2,确定这对中括号内部有三组数据,分别为
[[-1.1253e+26]],
[[ 3.0732e-41]],
[[-1.1256e+26]],
当前维度为3
3,脱去这对中括号,得到
[[-1.1253e+26]],
[[ 3.0732e-41]],
[[-1.1256e+26]],
4,对于[[-1.1253e+26]],固定最外面一对中括号
5,确定这对中括号内部有一组数据,即[-1.1253e+26],确定当前维度为1
6,脱去这对中括号,得到[-1.1253e+26]
7,对于[-1.1253e+26],固定最外面一对中括号
8,确定这对中括号内部有一组数据,即-1.1253e+26,确定当前维度为1
9,脱去这对中括号,得到-1.1253e+26
10,没有中括号可以固定,结束