PyTorch 是一个最近刚刚崛起的深度学习框架,目前在 Github 上 star 数量已经有 17K+ 了!

我们来看下官网首页的介绍(toulan.jpg):

PyTorch is a deep learning framework for fast,flexible experimentation.

PyTorch 是一个可以快速灵活进行实验的深度学习框架。

这句话把它的最大的特性给描述清楚了快速灵活,这两点在我们做一些小型的深度学习项目中及其重要。

因此越来越多的开发者从其他的框架中转移过来,并对 PyTorch 赞不绝口!

2 为什么要用 PyTorch?

其实第一部分我们已经说了它的快速灵活,下面是他的一些具体的特性。

PyTorch is a Python package that provides two high-level features:

  • Tensor computation (like NumPy) with strong GPU acceleration
  • Deep neural networks built on a tape-based autograd system

You can reuse your favorite Python packages such as NumPy,SciPy and Cython to extend PyTorch when needed.

即 PyTorch 是一个 Python 包,提供两个高级功能:

  • 和 NumPy 一样,具有强大的 GPU 加速度的张量计算
  • 具有基于 Tape 的自动求导系统构建的深度神经网络。

另外,你可以重用你最喜欢的 python 包,比如 numpy、scipy 和 Cython,以便在需要时扩展 PyTorch。

具有强大的 GPU 加速很好理解,而什么是基于 Tape 的自动求导系统呢?

这是 PyTorch 和其他深度学习框架(比如 Tensorflow、Theano、Caffe 和 CNTK 等)差别的最大的地方。 那些框架都需要先构建一个静态的计算图,每当改变了网络就意味着你可能要重新开始!

PyTorch 使用了一个叫做 反向模式和自动微分 的技术,它可以让你用零延迟或增加开销的方式任意的改变网络的行为。 虽然这种技术不是 PyTorch 独有的,例如 TensorFlow 在新版本中加入了 Eager 模式,让其具有动态构建计算图的能力,但它是迄今为止最快的实现方案之一。

3 安装

终于要可以动手了!(环境安装请参考 Tensorflow 从安装到计算 1+1 的第三部分)

——稍等片刻,这里我先夸一下 PyTorch 。

我觉得一个开源框架是否能够真正的流行起来,一个很重要的因素是对新手是否友好

有很多新手连 shell 命令可能都不太熟悉,你让他自己编译程序,结果只能就是放弃!

下面我们来看 PyTorch 给出的安装方法: pytorch install

只需要选择对应的版本,把命令复制一下,就基本可以顺利安装了!

4 验证

有没有安装成功,除了在安装过程中是否顺利外,还要看导入模块时会不会报错。

import torch
torch.__version__

我在写这篇文章时的版本是 0.4.1,如果它可以正常输出版本号,那么恭喜你安装成功!

5 计算 1 + 1

这也许是本文最简单的一部分:

import torch
result = torch.tensor(1) + torch.tensor(1)
print(result)

你将得到输出 tensor(2) !