pytorch的permute和transpose
时间: 2023-04-17 07:01:58 浏览: 179
用Pytorch实现Transformer
PyTorch中的permute和transpose都是用于改变张量维度顺序的函数。
permute函数可以通过指定维度的顺序来重新排列张量的维度,例如将一个形状为(3,4,5)的张量的维度顺序从(,1,2)变为(2,,1),可以使用以下代码:
```
import torch
x = torch.randn(3, 4, 5)
y = x.permute(2, , 1)
print(y.shape) # 输出(5, 3, 4)
```
transpose函数则是通过交换张量的维度来改变维度顺序,例如将一个形状为(3,4,5)的张量的维度顺序从(,1,2)变为(2,1,),可以使用以下代码:
```
import torch
x = torch.randn(3, 4, 5)
y = x.transpose(, 2).transpose(1, 2)
print(y.shape) # 输出(5, 4, 3)
```
需要注意的是,transpose函数只能交换两个维度,如果需要交换多个维度,需要多次调用transpose函数。而permute函数可以一次性指定所有维度的顺序。
阅读全文