当前位置:主页 > python教程 > Pytorch torch.unsqueeze()与torch.squeeze()函数

Pytorch中torch.unsqueeze()与torch.squeeze()函数详细解析

发布:2023-04-10 11:40:01 59


为找教程的网友们整理了相关的编程文章,网友步宾鸿根据主题投稿了本篇教程内容,涉及到pytorch、torch.unsqueeze()、pytorch、torch.squeeze()函数、Pytorch torch.unsqueeze()与torch.squeeze()函数相关内容,已被838网友关注,内容中涉及的知识点可以在下方直接下载获取。

Pytorch torch.unsqueeze()与torch.squeeze()函数

一. torch.squeeze()函数解析

1. 官网链接

torch.squeeze(),如下图所示:

torch.squeeze()

2. torch.squeeze()函数解析

torch.squeeze(input, dim=None, out=None) 

squeeze()函数的功能是维度压缩。返回一个tensor(张量),其中 input 中维度大小为1的所有维都已删除。

举个例子:如果 input 的形状为 (A×1×B×C×1×D),那么返回的tensor的形状则为 (A×B×C×D)

当给定 dim 时,那么只在给定的维度(dimension)上进行压缩操作,注意给定的维度大小必须是1,否则不能进行压缩。

举个例子:如果 input 的形状为 (A×1×B),squeeze(input, dim=0)后,返回的tensor不变,因为第0维的大小为A,不是1;squeeze(input, 1)后,返回的tensor将被压缩为 (A×B)。

3. 代码举例

3.1 输入size=(2, 1, 2, 1, 2)的张量

x = torch.randn(size=(2, 1, 2, 1, 2))
x.shape

输出结果如下:
torch.Size([2, 1, 2, 1, 2])

3.2 把x中维度大小为1的所有维都已删除

y = torch.squeeze(x)#表示把x中维度大小为1的所有维都已删除
y.shape

输出结果如下:
torch.Size([2, 2, 2])

3.3 把x中第一维删除,但是第一维大小为2,不为1,因此结果删除不掉

y = torch.squeeze(x,0)#表示把x中第一维删除,但是第一维大小为2,不为1,因此结果删除不掉
y.shape

输出结果如下:
torch.Size([2, 1, 2, 1, 2])

3.4 把x中第二维删除,因为第二维大小是1,因此可以删掉

y = torch.squeeze(x,1)#表示把x中第二维删除,因为第二维大小是1,因此可以删掉
y.shape

输出结果如下:
torch.Size([2, 2, 1, 2])

3.5 把x中最后一维删除,但是最后一维大小为2,不为1,因此结果删除不掉

y = torch.squeeze(x,dim=-1)#表示把x中最后一维删除,但是最后一维大小为2,不为1,因此结果删除不掉
y.shape

输出结果如下:
torch.Size([2, 1, 2, 1, 2])

二.torch.unsqueeze()函数解析

1. 官网链接

torch.unsqueeze(),如下图所示:

torch.unsqueeze()

2. torch.unsqueeze()函数解析

torch.unsqueeze(input, dim) → Tensor

unsqueeze()函数起升维的作用,参数dim表示在哪个地方加一个维度,注意dim范围在:[-input.dim() - 1, input.dim() + 1]之间,比如输入input是一维,则dim=0时数据为行方向扩,dim=1时为列方向扩,再大错误。

3. 代码举例

3.1 输入一维张量,在第0维(行)扩展,第0维大小为1

x = torch.tensor([1, 2, 3, 4])
y = torch.unsqueeze(x, 0)#在第0维扩展,第0维大小为1
y,y.shape

输出结果如下:
(tensor([[1, 2, 3, 4]]), torch.Size([1, 4]))

3.2 在第1维(列)扩展,第1维大小为1

y = torch.unsqueeze(x, 1)#在第1维扩展,第1维大小为1
y,y.shape

输出结果如下:
(tensor([[1],
         [2],
         [3],
         [4]]),
 torch.Size([4, 1]))

3.3 在第最后一维(也就是倒数第一维进行)扩展,最后一维大小为1

y = torch.unsqueeze(x, -1)#在第最后一维扩展,最后一维大小为1
y,y.shape

输出结果如下:
(tensor([[1],
         [2],
         [3],
         [4]]),
 torch.Size([4, 1]))

总结

到此这篇关于Pytorch中torch.unsqueeze()与torch.squeeze()函数的文章就介绍到这了,更多相关Pytorch torch.unsqueeze()与torch.squeeze()函数内容请搜索码农之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持码农之家!


参考资料

相关文章

  • PyTorch小功能之TensorDataset解读

    发布:2023-04-03

    这篇文章主要介绍了PyTorch小功能之TensorDataset解读,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教


  • Pytorch中关于F.normalize计算理解

    发布:2023-04-21

    这篇文章主要介绍了Pytorch中关于F.normalize计算理解,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教


  • pytorch中交叉熵损失函数的使用小细节

    发布:2023-04-22

    这篇文章主要介绍了pytorch中交叉熵损失函数的使用细节,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教


  • PyTorch+LSTM实现单变量时间序列预测

    发布:2023-03-30

    时间序列是指在一段时间内发生的任何可量化的度量或事件。这篇文章主要为大家介绍了PyTorch+LSTM实现单变量时间序列预测的相关资料,需要的可以参考一下


  • 基于PyTorch实现EdgeCNN的实战教程

    发布:2023-04-02

    本文我们将使用PyTorch来简易实现一个EdgeCNN,不使用PyG库,让新手可以理解如何PyTorch来搭建一个简易的图网络实例demo,感兴趣的朋友跟随小编一起看看吧


  • F.conv2d pytorch卷积计算方式

    发布:2023-03-31

    这篇文章主要介绍了F.conv2d pytorch卷积计算方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教


  • Jupyter notebook中如何添加Pytorch运行环境

    发布:2023-04-01

    这篇文章主要介绍了Jupyter notebook中如何添加Pytorch运行环境,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教


  • PyTorch源码解读之torchvision.models

    发布:2020-01-27

    今天小编就为大家分享一篇关于PyTorch源码解读之torchvision.models,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧


网友讨论