torch.unsqueeze

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维,是则去除 

参考:https://www.jianshu.com/p/2eaee422d444

猜你喜欢

转载自blog.csdn.net/weixin_43989326/article/details/88924897