Pytorch之permute函式:用於調換不同維度的順序,BCHW -> NCHW
阿新 • • 發佈:2020-12-23
技術標籤:PyTorch
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