PyTorch - 01 - 解释-Python深度学习神经网络API

PyTorch - Python Deep Learning Neural Network API

在这里插入图片描述
PyTorch是一个深度学习框架和科学计算软件包。 无论如何,PyTorch核心团队就是这样描述PyTorch的。 PyTorch的科学计算方面主要是PyTorch的张量库和相关的张量操作的结果。

张量是n维数组。

在这里插入图片描述
例如,从NumPy ndarray对象创建的PyTorch torch.Tensor对象共享内存。 从性能的角度来看,这使得PyTorch和NumPy之间的转换非常便宜。借助PyTorch张量,内置了GPU支持。 如果我们的系统上安装了张量,PyTorch可以很容易地在GPU之间来回移动张量。

PyTorch张量操作可以在GPU上执行。

在CUDA上,我们将详细讨论GPU及其在深度学习中的用途。 现在,只知道PyTorch张量及其关联的操作与NumPy n维数组非常相似。张量对于深度学习和神经网络非常重要,因为它们是我们最终用于构建和训练神经网络的数据结构。除了张量库之外,PyTorch在构建和训练神经网络方面还提供了更多功能。 在介绍PyTorch的深度学习细节之前,让我们先看一下有关如何创建PyTorch的一些细节。

PyTorch: A Brief History

PyTorch的最初版本是在2016年10月,在创建PyTorch之前,曾经并且仍然存在另一个称为Torch的框架。 Torch是一个基于Lua编程语言的机器学习框架,已经存在了很长时间。

在这里插入图片描述
之所以存在PyTorch与该Lua版本(称为Torch)之间的联系,是因为维护Lua版本的许多开发人员都是创建PyTorch的个人。Soumith Chintala以引导PyTorch项目而闻名,他创建PyTorch的理由非常简单,Torch的Lua版本已经老化,因此需要使用Python编写的较新版本。 结果,PyTorch成为了。

Facebook Created PyTorch

您可能会听说有关PyTorch的一件事是它是由Facebook创建并维护的。 这是因为Soumith Chintala在创建PyTorch时曾在Facebook AI Research工作(在撰写本文时仍然如此)。 但是,还有许多其他公司对PyTorch有既得利益。

在这里插入图片描述
PyTorch GitHub仓库表明有很多贡献者,目前超过700位。 在commit贡献的顶部附近,我们有Soumith,但还有许多其他人。现在让我们看一下PyTorch的深度学习功能。

Deep Learning With PyTorch

该表为我们提供了PyTorch软件包及其相应说明的列表。 这些是我们在本系列中构建神经网络时将学习和使用的主要PyTorch组件。

包装 说明
torch 顶级PyTorch包和张量库。
torch.nn 一个子包,其中包含用于构建神经网络的模块和可扩展类。
torch.autograd 一个子包,支持PyTorch中的所有可区分的Tensor操作。
torch.nn.functional 一个功能接口,其中包含用于构建神经网络的典型操作,例如损失函数,激活函数和卷积操作。
torch.optim 一个子包,其中包含SGD和Adam之类的标准优化操作。
torch.utils 一个子包,其中包含实用程序类,例如数据集和数据加载器,这些类使数据预处理更加容易。
torchvision 一个软件包,提供对流行的数据集,模型体系结构和计算机视觉图像转换的访问。

目前,torchvision软件包与顶级Torch软件包是分开的。 但是,如果将来将Torchvision作为Torch的子包引入,则这种情况可能会改变。

Why Use PyTorch For Deep Learning?

让我们谈谈学习PyTorch的前景。 对于深度学习和神经网络的初学者来说,学习PyTorch的首要原因是它是一个精简的框架,不会让您感到困惑。

PyTorch is thin and stays out of the way!

当我们使用PyTorch构建神经网络时,我们非常接近从头开始编程神经网络。 在PyTorch中进行编程的经验与实际情况差不多。

PyTorch接近真实事物!

了解了使用PyTorch对神经网络进行编程的过程之后,可以很容易地看到该过程如何在纯Python中从头开始。 这就是为什么PyTorch非常适合初学者的原因。

使用PyTorch之后,您将对神经网络和深度学习有更深入的了解。 PyTorch的顶级哲学之一就是不要介入,这使得我们可以专注于神经网络,而不再关注实际框架。

Philosophy Of PyTorch

在撰写本文时,PyTorch的开发受到以下列表的指导:

  • 避开
  • 迎合不耐烦的人
  • 促进线性码流
  • 与Python生态系统完全互操作
  • 跟其他任何东西一样快
  • PyTorch不会造成干扰的事实使PyTorch非常适合加深我们对神经网络的理解。
  • 当我们编写PyTorch代码时,我们只是在编写和扩展标准Python类,而当我们调试PyTorch代码时,我们正在使用标准Python调试器。

PyTorch的设计新颖,Pythonic且易懂。 源代码对于Python开发人员来说很容易阅读,因为它主要是用Python编写的,并且仅落入C ++和CUDA代码中以解决性能瓶颈。
总体而言,PyTorch是加深我们对深度学习和神经网络的理解的绝佳工具。

Investing In PyTorch As A Deep Learning Framework

从知识投资的角度来看,PyTorch可以被视为更安全的选择,仅因为Facebook支持它,并且PyTorch是为Python构建的,而Lua与Lua不同,它拥有庞大且不断发展的深度学习社区。

除了Facebook和Python优势之外,PyTorch还非常瘦,并且与Python高度集成,并且非常瘦,这使得PyTorch更有可能随着事情的发展而适应迅速发展的深度学习环境。

这些特性提高了PyTorch作为深度学习框架的寿命。

PyTorch For Deep Learning Research

PyTorch经常弹出的一个共同特征是,它非常适合研究。 研究适合性的原因与技术设计考虑有关。 为了优化神经网络,我们需要计算导数,并且为了进行计算,深度学习框架使用所谓的计算图。

计算图用于绘制神经网络内部张量上发生的函数运算。

这些图然后用于计算优化神经网络所需的导数。 PyTorch使用称为动态计算图的计算图。 这意味着在创建操作时将动态生成图形。

这与在实际操作发生之前完全确定的静态图相反。

Convolutional Neural Network Project In PyTorch

我们将在本系列中使用PyTorch解决的第一个项目是建立一个卷积神经网络,以对Fashion-MNIST数据集中的图像进行分类。

在这里插入图片描述

该数据集包含来自十个不同类别的服装项目的六万个示例训练集。 我们将使用PyTorch构建卷积神经网络,该神经网络可以准确预测给定输入零件的正确服装,因此请继续关注!

让我们为深入学习和神经网络做好准备。 在下一篇文章中,我们将安装PyTorch。 我会在那里见你!

猜你喜欢

转载自blog.csdn.net/weixin_48367136/article/details/109216030
今日推荐