欢迎回到本系列教程。首先,让我们介绍下PyTorch,这是一个深度神经网络的Python包。因为我们之后会使用它来编写神经网络,所以就从它开始吧。
image.png
PyTorch是一个深度学习框架和科学计算包。PyTorch的核心开发团队是这么描述PyTorch的。无论如何,PyTorch的科学计算是利用了PyTorch的张量库和张量操作。

张量是一个n维的数组

image.png
例如,PyTorch的 torch.Tensor对象是由NumPy的ndarray对象创建出来的,共享同一个内存。那么在PyTorch和NumPy之间进行转换是十分方便和节省性能的 。
另外,PyTorch内置了对GPU的支持。如果我们的系统中有GPU,也可以很方便在GPU和CPU中转移张量。

PyTorch的张量操作能在GPU运行

我们会在CUDA章节讨论GPU以及我们为什么要在深度学习中使用它们。现在,只需要知道Pytorch的张量以及操作是和NumPy的n维数组十分相近的。
张量在深度学习和神经网络中是十分重要的,因为它们是我们最后搭建训练神经网络的数据结构。
在张量库的顶层,PyTorch还有很多东西,在我们深入细节之前,先看下PyTorch的创立过程。

PyTorch历史

PyTorch最初在2016年10月发布,在Pytorch之前,有一个叫做Torch的框架。Torch是一个风靡一时的基于Lua机器学习框架。
The connection between PyTorch and this Lua version, called Torch, exists because many of the developers who maintain the Lua version are the individuals who created PyTorch.
image.png
Soumith Chintala 独自开发了PyTorch,他创造PyTorch的原因非常简单,Lua版本的Torch太“恶心”了,有需要开发一个有Python编写的版本。由此,PyTorch来了。

Facebook创造了PyTorch

你可能听说过PyTorch是由Facebook开发和维护的。这是因为

使用PyTorch进行深度学习

为什么要用PyTorch

PyTorch哲学

深入PyTorch

PyTorch在深度学习研究

基于PyTorch的卷积神经网络