1. 程式人生 > 實用技巧 >Pytorch學習筆記14----pytorch中資料形狀變換函式使用:view函式

Pytorch學習筆記14----pytorch中資料形狀變換函式使用:view函式

1.View函式

把原先tensor中的資料按照行優先的順序排成一個一維的資料(這裡應該是因為要求地址是連續儲存的),然後按照引數組合成其他維度的tensor。比如說是不管你原先的資料是[[[1,2,3],[4,5,6]]]還是[1,2,3,4,5,6],因為它們排成一維向量都是6個元素,所以只要view後面的引數一致,得到的結果都是一樣的。 小案例:
import torch
a=torch.Tensor([[[1,2,3],[4,5,6]]])
b=torch.Tensor([1,2,3,4,5,6])

print(a.view(1,6))
print(b.view(1,6))
#
得到的結果都是tensor([[1., 2., 3., 4., 5., 6.]]) #再看一個例子: a=torch.Tensor([[[1,2,3],[4,5,6]]]) print(a.view(3,2))

控制檯輸出:

引數不可為空。引數中的-1就代表這個位置由其他位置的數字來推斷,只要在不致歧義的情況下,view引數就可以推斷出來,也就是人可以推斷出形狀的情況下,view函式也可以推斷出來。比如a tensor的資料個數是6個,如果view(1,-1),我們就可以根據tensor的元素個數推斷出-1代表6。而如果是view(-1,-1,2),人不知道怎麼推斷,機器也不知道。還有一種情況是人可以推斷出來,但是機器推斷不出來的:view(-1,-1,6),人可以知道-1都代表1,但是機器不允許同時有兩個負1。

參考文獻: https://www.jianshu.com/p/b23367ec9097