pytorch交换tensor的指定维度

简介: pytorch交换tensor的指定维度

pytorch中有两种方式可以实现tensor指定维度的交换,第一个是torch.permute(),第二个方法是torch.transpose()。

二者不同是torch.permute()可以同时交换多个维度,而torch.transpose()每次只能交换两个维度。

方式一:torch.permute()

参数列表:

  • input:待交换的张量
  • dims:需要交换维度的索引

该函数会按照我们指定维度方式重新排列,例如我们下面定义了一个张量维度为【2,3,4】,如果我们要将维度变为【4,3,2】,就需要交换第一个维度和第三个维度,那我们传入的参数维度索引就应该为【2,1,0】,该索引对应维度的顺序,原来是【0,1,2】,现在是【2,1,0】。

a = torch.randn(2, 3, 4)
print(a.shape)
print(torch.permute(a, (2, 1, 0)).shape)
torch.Size([2, 3, 4])
torch.Size([4, 3, 2])

或者还可以使用transpose函数直接交换维度

方式二:torch.transpose()

对于该方法每次只能交换两个维度,输入的参数很简单就是需要交换的两个维度的索引。

print(torch.transpose(a, 0, 1).shape)
torch.Size([3, 2, 4])


目录
相关文章
|
7月前
|
机器学习/深度学习 存储 PyTorch
PyTorch基本数据类型tensor
PyTorch基本数据类型tensor
84 2
|
7月前
|
存储 PyTorch 算法框架/工具
PyTorch 中的 Tensor:属性、数据生成和基本操作
PyTorch 中的 Tensor:属性、数据生成和基本操作
223 0
|
4月前
|
PyTorch 算法框架/工具
【Pytorch】解决Fan in and fan out can not be computed for tensor with fewer than 2 dimensions
本文提供了两种解决PyTorch中由于torchtext版本问题导致的“Fan in and fan out can not be computed for tensor with fewer than 2 dimensions”错误的方法。
100 2
|
7月前
|
机器学习/深度学习 PyTorch 算法框架/工具
【PyTorch】-了解张量(Tensor)
【PyTorch】-了解张量(Tensor)
|
7月前
|
机器学习/深度学习 存储 PyTorch
PyTorch深度学习基础:张量(Tensor)详解
【4月更文挑战第17天】本文详细介绍了PyTorch中的张量,它是构建和操作深度学习数据的核心。张量是多维数组,用于存储和变换数据。PyTorch支持CPU和GPU张量,后者能加速大规模数据处理。创建张量可通过`torch.zeros()`、`torch.rand()`或直接从Python列表转换。张量操作包括数学运算、切片和拼接。在深度学习中,张量用于神经网络模型的构建和训练。理解张量对于掌握PyTorch至关重要。
|
7月前
|
存储 机器学习/深度学习 PyTorch
PyTorch核心--tensor 张量 !!
PyTorch核心--tensor 张量 !!
66 1
|
7月前
|
机器学习/深度学习 PyTorch 算法框架/工具
【深度学习】Pytorch Tensor 张量
【1月更文挑战第10天】【深度学习】Pytorch Tensor 张量
|
7月前
|
机器学习/深度学习 PyTorch 算法框架/工具
【深度学习】Pytorch Tensor 张量
【1月更文挑战第26天】【深度学习】Pytorch Tensor 张量
|
7月前
|
机器学习/深度学习 PyTorch 算法框架/工具
PyTorch深度学习基础之Tensor的变换、拼接、拆分讲解及实战(附源码 超详细必看)
PyTorch深度学习基础之Tensor的变换、拼接、拆分讲解及实战(附源码 超详细必看)
126 0
|
7月前
|
机器学习/深度学习 PyTorch 算法框架/工具
PyTorch深度学习基础之Tensor的索引和切片讲解及实战(附源码 简单易懂)
PyTorch深度学习基础之Tensor的索引和切片讲解及实战(附源码 简单易懂)
224 0