經常可以看到調用torch.view(-1,28*28)
之類的調用,那么這里的-1是什么意思呢,經過查看文檔view()
得到了一下結果:
view()
返回的數據和傳入的tensor一樣,只是形狀不同- -1在這里的意思是讓電腦幫我們計算,比如下面的例子,總長度是20,我們不想自己算\(20/5=4\),就可以在不想算的位置放上-1,電腦就會自己計算對應的數字,這個在實際搭建網絡的時候是很好用的
- 還要注意
view()
返回的tensor和傳入的tensor共享內存,意思就是修改其中一個,數據都會變
import torch
a = torch.arange(0,20) #此時a的shape是(1,20)
a.view(4,5).shape #輸出為(4,5)
a.view(-1,5).shape #輸出為(4,5)
a.view(4,-1).shape #輸出為(4,5)