2017-06-30 87 views
1

PyTorch的torch.transpose函數僅轉換2D輸入。文檔是herePyTorch中沒有N維轉錄

另一方面,Tensorflow的tf.transpose函數允許您轉置張量N任意尺寸。

有人可以請解釋爲什麼PyTorch不能/不能有N維轉置功能?這是由於PyTorch中計算圖構造的動態特性與Tensorflow的Define-then-Run範式相對應嗎?

回答

3

它在pytorch中簡單地被稱爲不同。 torch.Tensor.permute將允許您在pytorch中交換尺寸,例如TensorFlow中的tf.transpose。

作爲如何你一個4D圖像張量從NHWC轉換爲NCHW一個例子(未測試,因此可能包含bug):

>>> img_nhwc = torch.randn(10, 480, 640, 3) 
>>> img_nhwc.size() 
torch.Size([10, 480, 640, 3]) 
>>> img_nchw = img_nhwc.permute(0, 3, 1, 2) 
>>> img_nchw.size() 
torch.Size([10, 3, 480, 640])