如何在 PyTorch 中挤压和解压张量?
要压缩张量,我们使用方法。它返回一个具有输入张量所有维度但删除大小1的新张量。例如,如果输入张量的形状是(M☓1☓N☓1☓P),那么压缩后的张量将具有形状(M☓M☓P)。torch.squeeze()
要解压张量,我们使用方法。它返回插入特定位置的大小为1的新张量维度。torch.unsqueeze()
脚步
导入所需的库。在以下所有Python示例中,所需的Python库是torch。确保您已经安装了它。
创建一个张量并打印它。
计算。它压缩(删除)大小为1并返回一个具有输入张量的所有其他维度的张量。torch.squeeze(input)
计算。它在给定的暗度处插入大小为1的新维度并返回张量。torch.unsqueeze(input,dim)
打印压缩和/或未压缩的张量。
示例1
# Python program to squeeze and unsqueeze a tensor
# import necessary library
import torch
# Create a tensor of all one
T = torch.ones(2,1,2) # size 2x1x2
print("Original Tensor T:\n", T )
print("尺码:", T.size())
# Squeeze the dimension of the tensor
squeezed_T = torch.squeeze(T) # now size 2x2
print("Squeezed_T\n:", squeezed_T )
print("Size of Squeezed_T:", squeezed_T.size())输出结果Original Tensor T:
tensor([[[1., 1.]],
[[1., 1.]]])
尺码: torch.Size([2, 1, 2])
Squeezed_T
: tensor([[1., 1.],
[1., 1.]])
Size of Squeezed_T: torch.Size([2, 2])示例2
# Python program to squeeze and unsqueeze a tensor
# import necessary library
import torch
# create a tensor
T = torch.Tensor([1,2,3]) # size 3
print("Original Tensor T:\n", T )
print("尺码:", T.size())
# Squeeze the tensor in dimension o or column dim
unsqueezed_T = torch.unsqueeze(T, dim = 0) # now size 1x3
print("Unsqueezed T\n:", unsqueezed_T )
print("UnSqueezedT的尺寸:", unsqueezed_T.size())
# Squeeze the tensor in dimension 1 or row dim
unsqueezed_T = torch.unsqueeze(T, dim = 1) # now size 3x1
print("Unsqueezed T\n:", unsqueezed_T )
print("UnSqueezedT的尺寸:", unsqueezed_T.size())输出结果Original Tensor T:
tensor([1., 2., 3.])
尺码: torch.Size([3])
Unsqueezed T
: tensor([[1., 2., 3.]])
UnSqueezedT的尺寸: torch.Size([1, 3])
Unsqueezed T
: tensor([[1.],
[2.],
[3.]])
UnSqueezedT的尺寸: torch.Size([3, 1])