Pytorch ABC 1

因为同学推荐,今天安装Pytorch框架。据说比Tensorflow更方便,也更省内存。
在介绍中,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 默认构造一个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变量之间的转换

>>> 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)]
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. 介绍 首先让我们来看看TensorFlow! 但是在我们开始之前,我们先来看看Python API中的Ten...
    JasonJe阅读 11,841评论 1 32
  • 深度学习相比较于之前的数学模型而言更容易上手。大多数研究深度学习的人都是在用那些牛人们创造的模型,只需要换一个不同...
    君君玩科技阅读 2,182评论 0 13
  • 她轻轻转身 看到心形叶 还漂浮着 看到雕栏玉砌 仍立在那 看到恍若隔世的脸 就如星海 她回过了头 看到了蓝天白云 ...
    冬日的蓝水阅读 158评论 0 0
  • 只有优秀的程序员才关心产品,只有优秀的程序员才在乎程序的性能,我们要具备性能测试和性能优化的能力,今天开始我开始给...
    江水东流阅读 905评论 0 3
  • 你不必跟随他们,但你必须知道它们是什么! 作为挑剔的创意读者,我们从来没有不期望你盲目的跟随潮流。但趋势仍值得了解...
    打豆豆阅读 154评论 0 1