相同点
1.不对原数组进行改变,要赋值
2.可以将数据进行转置
不同点
1.transpose只可对两个维度进行转置,而permute可对多个维度进行转置
2.transpose中参数顺序不代表转置的维度顺序,仅仅代表要进行转置的维度;而permute中参数顺序代表转置后的维度顺序(从前往后依次是0,1,2,....,n维)
3.transpos的参数为两个参数dim0与dim1,表示要转置的两个维度,不可多,也不可少;permute的参数为要进行转置的数据的维度的排列,不可多,也不可少。
import torch
a = torch.randint(0, 6, (2, 3))
b = torch.randint(0, 6, (1, 2, 3))
a = a.transpose(0, 1)
b = b.permute(2, 0, 1)
print(a.shape)
print(b.shape)
"""
torch.Size([3, 2])
torch.Size([3, 1, 2])
"""