https://zhuanlan.zhihu.com/p/76583143
MY
这是F3 dataset.py文件里面的内容
举例子
这个博主讲的清楚 https://blog.csdn.net/qq_30468133/article/details/85074003
permute(多维数组,[维数的组合])
比如:
a=rand(2,3,4); %这是一个三维数组,各维的长度分别为:2,3,4
%现在交换第一维和第二维:
permute(A,[2,1,3]) %变成3*2*4的矩阵
import torch
import numpy as np
a=np.array([[[1,2,3],[4,5,6]]])
unpermuted=torch.tensor(a) #转化为tensor
print(unpermuted.size()) # ——> torch.Size([1, 2, 3])
tensor([[[1., 4.],
[2., 5.],
[3., 6.]]])
permuted=unpermuted.permute(2,0,1)
print(permuted.size()) # ——> torch.Size([3, 1, 2])
tensor([[[1., 2.],
[3., 4.],
[5., 6.]]])
torch中permute 与 numpy中transepose的区别
转换效果一样,只不过transpose是对np操作,permute是对tensor操作
https://blog.csdn.net/qq_34806812/article/details/89385831
import torch
import numpy as np
a = np.arange(24).reshape(3,4,2)
print('before', a)
b = np.transpose(a,(1,0,2))
print('b',b)
c = torch.tensor(a)
d = c.permute(1,0,2)
print('d:',d)
输出
/usr/bin/python3 /home/thu/test_python/transpose_permute.py
before [[[ 0 1]
[ 2 3]
[ 4 5]
[ 6 7]]
[[ 8 9]
[10 11]
[12 13]
[14 15]]
[[16 17]
[18 19]
[20 21]
[22 23]]]
b [[[ 0 1]
[ 8 9]
[16 17]]
[[ 2 3]
[10 11]
[18 19]]
[[ 4 5]
[12 13]
[20 21]]
[[ 6 7]
[14 15]
[22 23]]]
d: tensor([[[ 0, 1],
[ 8, 9],
[16, 17]],
[[ 2, 3],
[10, 11],
[18, 19]],
[[ 4, 5],
[12, 13],
[20, 21]],
[[ 6, 7],
[14, 15],
[22, 23]]])
Process finished with exit code 0