in:
import numpy as np
import torch
a=torch.Tensor([1,2,3,4])
print(a)
print(a.size())
b=torch.unsqueeze(a,0)
print(b)
print(b.size())
c=torch.unsqueeze(a,1)
print(c)
print(c.size())
out:
tensor([1., 2., 3., 4.])
torch.Size([4])
tensor([[1., 2., 3., 4.]])
torch.Size([1, 4])
tensor([[1.], [2.], [3.], [4.]])
torch.Size([4, 1])
torch.unsqueeze(a,dim),在a的位置dim出插入一维的tensor,如上程序:a的size为[4],执行完torch.unsqueeze(a,0),size变为[1,4],执行完torch.unsqueeze(a,1)后,size变为[4,1]
in:
k=torch.rand(1,3,2,1)
print(k)
print(k.size())
k1=torch.squeeze(k)
print(k1)
print(k1.size())
k2=torch.squeeze(k,0)
print(k2)
print(k2.size())
out:
tensor([[[[0.5410], [0.2082]], [[0.3503], [0.3078]], [[0.3172], [0.2161]]]])
torch.Size([1, 3, 2, 1])
tensor([[0.5410, 0.2082], [0.3503, 0.3078], [0.3172, 0.2161]])
torch.Size([3, 2])
tensor([[[0.5410], [0.2082]], [[0.3503], [0.3078]], [[0.3172], [0.2161]]])
torch.Size([3, 2, 1])
torch.squeeze(a),消除a中1维的tensor
torch.squeeze(a,dim),判断指定位置dim处的tensor是否为1维,是则去除