因為同學推薦,今天安裝Pytorch框架。據(jù)說比Tensorflow更方便,也更省內(nèi)存。
在介紹中,Pytorch自稱為deep框架的numpy。
安裝
非常簡單,人性化。一行代碼即可,比其他框架容易。

Pytorch安裝
基本語法
定義張量
x = torch.Tensor(5, 3)
print(x)
y = torch.FloatTensor(5, 3)
print(y)
0.0000e+00 0.0000e+00 -7.8785e+31
4.5577e-41 -7.8789e+31 4.5577e-41
5.0649e-38 0.0000e+00 5.0649e-38
0.0000e+00 4.0357e-40 1.6772e-37
8.9683e-44 0.0000e+00 -7.8785e+31
[torch.FloatTensor of size 5x3]
0.0000e+00 0.0000e+00 -7.8785e+31
4.5577e-41 -7.8787e+31 4.5577e-41
5.0649e-38 0.0000e+00 5.0649e-38
0.0000e+00 0.0000e+00 1.6771e-37
8.9683e-44 0.0000e+00 0.0000e+00
[torch.FloatTensor of size 5x3]
可見torch.Tensor 默認構(gòu)造一個FloatTensor。
簡單計算
計算加法有以下幾種寫法
x = torch.randn(5, 3)
y = torch.randn(5, 3)
print x + y
print torch.add(x, y)
-0.7518 0.0857 0.5324
1.2734 -0.9105 -1.1632
-1.5461 -0.1408 1.3701
1.6882 -2.6038 -0.3492
-1.1691 0.3820 -1.1746
[torch.FloatTensor of size 5x3]
-0.7518 0.0857 0.5324
1.2734 -0.9105 -1.1632
-1.5461 -0.1408 1.3701
1.6882 -2.6038 -0.3492
-1.1691 0.3820 -1.1746
[torch.FloatTensor of size 5x3]
result = torch.Tensor(5, 3)
torch.add(x, y, out=result)
print result
-0.7518 0.0857 0.5324
1.2734 -0.9105 -1.1632
-1.5461 -0.1408 1.3701
1.6882 -2.6038 -0.3492
-1.1691 0.3820 -1.1746
[torch.FloatTensor of size 5x3]
y.add_(x)
-0.7518 0.0857 0.5324
1.2734 -0.9105 -1.1632
-1.5461 -0.1408 1.3701
1.6882 -2.6038 -0.3492
-1.1691 0.3820 -1.1746
[torch.FloatTensor of size 5x3]
Slicing
和Numpy相同
print x[:]
print x[1:3, :]
-0.1647 -0.4870 -0.1755
-0.3148 -0.5922 -0.2053
-0.5448 -1.4650 2.0470
2.3983 -1.5116 0.6507
-1.2435 -0.1560 -0.8927
[torch.FloatTensor of size 5x3]
-0.3148 -0.5922 -0.2053
-0.5448 -1.4650 2.0470
[torch.FloatTensor of size 2x3]
與Numpy變量之間的轉(zhuǎn)換
>>> a = torch.ones(5)
>>> b = a.numpy()
>>> a
1
1
1
1
1
[torch.FloatTensor of size 5]
>>> b
array([ 1., 1., 1., 1., 1.], dtype=float32)
注意,在運算的時候,它們是綁定的:
>>> a.add_(1)
2
2
2
2
2
[torch.FloatTensor of size 5]
>>> b
array([ 2., 2., 2., 2., 2.], dtype=float32)
放在CUDA中運算
>>> torch.cuda.is_available()
True
>>> x = x.cuda()
>>> y = y.cuda()
>>> x+y
0.0983 0.5931 0.4211
0.6717 0.9579 0.4118
0.5332 0.1976 0.6919
0.2896 0.3155 0.1421
0.7828 409.2463 0.8346
[torch.cuda.FloatTensor of size 5x3 (GPU 0)]