Pytorch之permute函数:用于调换不同维度的顺序,BCHW -> NCHW

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

猜你喜欢

转载自blog.csdn.net/zjc910997316/article/details/111566753