Pytorch學習筆記(一)
阿新 • • 發佈:2019-01-25
本篇部落格主要向大家介紹Pytorch中view()、squeeze()、unsqueeze()、torch.max()函式,這些函式雖然簡單,但是在
神經網路程式設計總卻經常用到,希望大家看了這篇博文能夠把這些函式的作用弄清楚。
import torch
a=torch.Tensor(2,3)
a
3.8686e+25 9.1836e-39 1.2771e-40
9.0079e+15 1.6751e-37 2.9775e-41
[torch.FloatTensor of size 2x3]
view()函式作用是將一個多行的Tensor,拼接成一行。
a.view(1 ,-1)
3.8686e+25 9.1836e-39 1.2771e-40 9.0079e+15 1.6751e-37 2.9775e-41
[torch.FloatTensor of size 1x6]
下面是torch中squeeze()和unsqueeze()兩個函式。
b=torch.Tensor(1,3)
b
3.3447e+30 6.1237e-43 5.9179e+32
[torch.FloatTensor of size 1x3]
b.squeeze(0)
3.3447e+30 6.1237e-43 5.9179e+32 [torch.FloatTensor of size 3]
b.squeeze(1)
3.3447e+30 6.1237e-43 5.9179e+32
[torch.FloatTensor of size 1x3]
squeeze中的引數0、1分別代表第一、第二維度,squeeze(0)表示如果第一維度值為1,則去掉,否則不變。故b的維度(1,3),可去掉1成(3),但不可去掉3。
c=torch.Tensor(3)
c
7.5589e+28
5.2839e-11
1.8888e+31
[torch.FloatTensor of size 3]
c.unsqueeze(0)
7.5589e+28 5.2839e-11 1.8888e+31 [torch.FloatTensor of size 1x3]
c.unsqueeze(1)
7.5589e+28
5.2839e-11
1.8888e+31
[torch.FloatTensor of size 3x1]
unsqueeze()與squeeze()作用相反。引數代表的意思相同。
d=torch.Tensor([[1,3],[2,4]])
d
1 3
2 4
[torch.FloatTensor of size 2x2]
torch.max(d,0)
(
2 4
[torch.FloatTensor of size 1x2],
1 1
[torch.LongTensor of size 1x2])
torch.max()返回兩個結果,第一個是最大值,第二個是對應的索引值;第二個引數 0 代表按列取最大值並返回對應的行索引值,1 代表按行取最大值並返回對應的列索引值。
torch.max(d,1)
(
3
4
[torch.FloatTensor of size 2x1],
1
1
[torch.LongTensor of size 2x1])