PyTorch中的view的用法

2021-10-05 22:10:30 字數 1314 閱讀 5427

在pytorch中view函式作用為重構張量的維度,相當於numpy中的resize()的功能,但是用法不太一樣

import torch

tt1=torch.tensor(

[-0.3623,-0.6115,0.7283,0.4699,2.3261,0.1599]

)

tt1.size()torch.size([6]),是乙個一行的tensor。現在通過view可以將其重構一下形狀。

result=tt1.view(3,2)

result

tensor(

[[-0.3623, -0.6115],

[ 0.7283, 0.4699],

[ 2.3261, 0.1599]

])

torch.view(引數a,引數b,…),其中引數a=3,引數b=2決定了將一維的tt1重構成3*2維的張量。

有時候會出現torch.view(-1)或者torch.view(引數a,-1)這種情況。則-1引數是需要估算的。

import torch

tt3=torch.tensor(

[[-0.3623,-0.6115],[0.7283,0.4699],[2.3261,0.1599]])

result2=tt3.view(2,-1).contiguous(

)

result2

tensor(

[[-0.3623, -0.6115, 0.7283],

[ 0.4699, 2.3261, 0.1599]

])

其中contiguous()

返回乙個記憶體連續的有相同資料的tensor,如果原tensor記憶體連續,則返回原tensor

contiguous一般與transposepermuteview搭配使用:使用transposepermute進行維度變換後,呼叫contiguous,然後方可使用view對維度進行變形(如:tensor_var.contiguous().view()

PyTorch中view的用法

相當於numpy中resize 的功能,但是用法可能不太一樣。我的理解是 把原先tensor中的資料按照行優先的順序排成乙個一維的資料 這裡應該是因為要求位址是連續儲存的 然後按照引數組合成其他維度的tensor。比如說是不管你原先的資料是 1,2,3 4,5,6 還是 1,2,3,4,5,6 因為...

PyTorch中view的用法

相當於numpy中resize 的功能,但是用法可能不太一樣。我的理解是 把原先tensor中的資料按照行優先的順序排成乙個一維的資料 這裡應該是因為要求位址是連續儲存的 然後按照引數組合成其他維度的tensor。比如說是不管你原先的資料是 1,2,3 4,5,6 還是 1,2,3,4,5,6 因為...

Pytorch中view的用法

在pytorch中view函式的作用為重構張量的維度,相當於numpy中resize 的功能,但是用法可能不太一樣。如下例所示 import torch tt1 torch.tensor 0.3623,0.6115,0.7283,0.4699,2.3261,0.1599 result tt1.vie...