Tensor中利用None来增加维度,可以简单的理解为在None的位置上增加一维:
x = torch.randint(1,4,(3,4))
print("x:",x)
print("size of x:",x.size())
y = x[:,None] #在第二维上增加一维,即将x中[3, 3, 1, 1],[2, 1, 1, 3],[1, 1, 1, 3]外面加一层[]
print("y:",y)
print("size of y:",y.size())
z = x[None,:,:] #等同于x[None,:],x[None],即在x中第一维上增加一维,在x外面加一层[]
print("z:",z)
print("size of z:",z.size())
zz = x[None,None] #在x中第一维上增加2维,在x外面加一层[]之后在加一层
r = x[:,:,None] #在第三维上增加一维,即将[3, 3, 1, 1],[2, 1, 1, 3],[1, 1, 1, 3]中每一个元素加一层[]
print("r:",r)
print("size of r:",r.size())
u = x[:,:,None,None] #在[3, 3, 1, 1],[2, 1, 1, 3],[1, 1, 1, 3]中每一个元素加一层[]外面再加一层[]
print("u:",u)
print("size of u:",u.size())
##############################
o = torch.randint(1,4,(3,4,5))
print("o:",o)
i = o[:,None