Pytorch函数view、permute、squeeze、usqueeze

简介: Pytorch函数view、permute、squeeze、usqueeze

1.view


在pytorch中view函数的作用为重构张量的维度,相当于numpy中resize()的功能,但是用法可能不太一样。

view有二种用法:

  • torch.view(参数a,参数b,。。。)
  • torch.view(-1)或torch.view(参数a,-1)

如下例所示

b03d7413b32f4a9ab7006161bbb55917.png

458caf0ec862438cb252acdb6825e271.png

2e3231d90adc45c0bc5775531bcb0137.png

49c4f06fa2df49e79f2b46877cb1e2ac.png

总结一下:view的二种方法,一种就是当成resize一样转换数据shape,一种是如果是torch.view(参数a,-1),则表示在参数b未知,参数a已知的情况下自动补齐列向量长度,在这个例子中a=3,x总共由9个元素,则b=9/3=3。以此类推更多维度的比如说


🐻torch.view(a,b,c)等价于torch.view(a,b,-1),torch.view(a,b,-1)表示在已知前二个维度a,b的情况下,最后一个维度根据元素个数,自动补齐最后一维度。


1687252250332.png

2.permute


permute函数将tensor的维度换位

比如下面的

e9d2d2e51c7c4023b9042fa28d35c253.png

我们函数的目的,就是让这个shape的数值之间换位置。

permute()中的数字,其实就是原始shape返回的值下的每个维度的索引。


3.squeeze


对数据的维度进行压缩使用方式:


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

将输入张量形状中的1 去除并返回。

如果输入是形如(A×1×B×1×C×1×D),那么输出形状就为: (A×B×C×D)

当给定dim时,那么挤压操作只在给定维度上。

例如,输入形状为: (A×1×B), squeeze(input, 0) 将会保持张量不变,只有用 squeeze(input, 1),形状会变成 (A×B)。


什么是给定的维度挤压,我们可以把size()返回的值看成一个列表,列表对应不同位置的索引,就是我们要挤压的位置。比如:


4d75c0f6730f48018625f8c025574342.png

torch.squeeze(m,0)就是挤压索引为0 位置,也就是2,但是我们只挤压为1的,因此保留2。这个函数结果不变

如果说不做给定位置挤压,就默认对所有的位置有1的都挤压处理

3eb7ee8827d54173aee84b3666159be5.png

5e5f059f92d64afa8c71f2eaeef07502.png

19837a5a9841409f8126de721ecf9c9c.png

073a7166ad6847c58cbd1d8488de1ef2.png

4.usqueeze


与squeeze作用相反,就是在给定位置上插入一个维度1啦


d462fe449e49403d8199e8b8967fe6f0.png

注意,扩展维度的位置


相关文章
|
机器学习/深度学习 PyTorch 算法框架/工具
深度学习Pytorch-Tensor函数
深度学习Pytorch-Tensor函数
98 0
|
7月前
|
机器学习/深度学习 PyTorch 算法框架/工具
PyTorch基础之网络模块torch.nn中函数和模板类的使用详解(附源码)
PyTorch基础之网络模块torch.nn中函数和模板类的使用详解(附源码)
637 0
|
7月前
|
机器学习/深度学习 PyTorch 算法框架/工具
PyTorch基础之激活函数模块中Sigmoid、Tanh、ReLU、LeakyReLU函数讲解(附源码)
PyTorch基础之激活函数模块中Sigmoid、Tanh、ReLU、LeakyReLU函数讲解(附源码)
331 0
|
2月前
|
PyTorch 算法框架/工具
Pytorch学习笔记(五):nn.AdaptiveAvgPool2d()函数详解
PyTorch中的`nn.AdaptiveAvgPool2d()`函数用于实现自适应平均池化,能够将输入特征图调整到指定的输出尺寸,而不需要手动计算池化核大小和步长。
190 1
Pytorch学习笔记(五):nn.AdaptiveAvgPool2d()函数详解
|
2月前
|
PyTorch 算法框架/工具
Pytorch学习笔记(六):view()和nn.Linear()函数详解
这篇博客文章详细介绍了PyTorch中的`view()`和`nn.Linear()`函数,包括它们的语法格式、参数解释和具体代码示例。`view()`函数用于调整张量的形状,而`nn.Linear()`则作为全连接层,用于固定输出通道数。
115 0
Pytorch学习笔记(六):view()和nn.Linear()函数详解
|
2月前
|
PyTorch 算法框架/工具
Pytorch学习笔记(四):nn.MaxPool2d()函数详解
这篇博客文章详细介绍了PyTorch中的nn.MaxPool2d()函数,包括其语法格式、参数解释和具体代码示例,旨在指导读者理解和使用这个二维最大池化函数。
176 0
Pytorch学习笔记(四):nn.MaxPool2d()函数详解
|
2月前
|
PyTorch 算法框架/工具
Pytorch学习笔记(三):nn.BatchNorm2d()函数详解
本文介绍了PyTorch中的BatchNorm2d模块,它用于卷积层后的数据归一化处理,以稳定网络性能,并讨论了其参数如num_features、eps和momentum,以及affine参数对权重和偏置的影响。
240 0
Pytorch学习笔记(三):nn.BatchNorm2d()函数详解
|
2月前
|
机器学习/深度学习 PyTorch TensorFlow
Pytorch学习笔记(二):nn.Conv2d()函数详解
这篇文章是关于PyTorch中nn.Conv2d函数的详解,包括其函数语法、参数解释、具体代码示例以及与其他维度卷积函数的区别。
272 0
Pytorch学习笔记(二):nn.Conv2d()函数详解
|
2月前
|
PyTorch 算法框架/工具
Pytorch学习笔记(七):F.softmax()和F.log_softmax函数详解
本文介绍了PyTorch中的F.softmax()和F.log_softmax()函数的语法、参数和使用示例,解释了它们在进行归一化处理时的作用和区别。
494 1
Pytorch学习笔记(七):F.softmax()和F.log_softmax函数详解
|
2月前
|
机器学习/深度学习 PyTorch 算法框架/工具
Pytorch学习笔记(八):nn.ModuleList和nn.Sequential函数详解
PyTorch中的nn.ModuleList和nn.Sequential函数,包括它们的语法格式、参数解释和具体代码示例,展示了如何使用这些函数来构建和管理神经网络模型。
142 1
下一篇
DataWorks