如何在 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])