numpy transpose和pytorch transpose, permute
- numpy transpose功能为重新排列维度,参数为初始维度所在的最终维度,一定要写满所有的维度,和pytorch的permute类似;
- pytorch的permute和numpy的transpose功能和用法一样,transpose功能为交换两个维度,多次使用可以达到permute的效果,需要两个参数,为需要交换的维度,因此参数顺序不重要;
import torch
import numpy as np
# numpy transpose
x = np.random.rand(2,3,4)
print(x.transpose(2,0,1).shape) # [4,2,3]
# pytorch transpose permute
y = torch.randn(2,3,4) # [2,3,4]
# 对于transpose
y.transpose(0,1) # [3,2,4]
# y.transpose(0,2,1) # 报错,操作不了多维
# 对于permute
y.permute(1,0,2) # [3,2,4],必须写满所有的维度才不报错
# y.permute(0,1) # 报错,number of dims don't match in permute"