深度学习pytorch_选择PyTorch进行深度学习的5个理由

深度学习pytorch

PyTorch绝对是当下的潮流 ,尤其是在最近的1.3和1.4版本中,带来了许多性能改进以及对移动平台的开发者更友好的支持。 但是为什么要选择使用PyTorch,而不是其他框架,如MXNet , Chainer或TensorFlow ? 让我们看一下构成PyTorch充分理由的五个原因。

在我们开始之前,请TensorFlow用户在我开始之前就已经输入了愤怒的推文和电子邮件,这是一种恳求:是的,还有很多理由选择TensorFlow而不是PyTorch,特别是如果您针对移动或Web平台。 这并不是要列出“ TensorFlow很烂”和“ PyTorch出色”的原因,而是一系列使PyTorch成为我首先讨论的框架的原因。 我承认,TensorFlow本身就很棒,所以请别犹豫。

[ 也在InfoWorld上:深度学习与机器学习:理解差异 ]

PyTorch是Python

人们选择PyTorch的主要原因之一是他们所看的代码很容易理解。 该框架的设计和组装是为了与Python一起使用,而不是经常反对它。 您的模型和层只是Python类,其他所有类也是如此:优化器,数据加载器,损失函数,转换等。

由于PyTorch运行的是急切的执行模式,而不是传统TensorFlow的静态执行图(是的,TensorFlow 2.0确实提供了急切的执行,但有时有点笨拙),因此很容易就您的自定义PyTorch类进行推理,并且您可以深入研究使用TensorBoard或标准Python技术进行的调试,从print()语句一直到从堆栈跟踪样本生成火焰图。 这一切对从其他数据科学框架(例如Pandas或Scikit-learn)进行深度学习的人员表示非常欢迎。

PyTorch还具有稳定的API的优点,该API从早期版本到1.3版仅进行了一次重大更改(即,将Variables更改为Tensors)。 尽管这无疑是由于其年龄太小,但它的确意味着无论您使用哪种版本,您在野外都会看到的绝大多数PyTorch代码都是可以识别和理解的。

PyTorch可以使用了

虽然“包含电池”的理念绝对不是PyTorch独有的,但使用PyTorch起来并使其运行起来非常容易。 使用PyTorch Hub ,您仅需一行代码即可获得经过预训练的ResNet-50模型:

model = torch.hub.load('pytorch/vision', 'resnet50', pretrained=True)

而且PyTorch Hub在各个域之间是统一的,从而使其成为一站式的架构,可处理文本,音频和视觉。

除了模型之外,PyTorch还提供大量损失函数和优化器,就像您期望的那样,还提供了易于使用的数据加载方法和链接内置转换的方法。 构建自己的加载程序或转换也很简单。 由于所有内容都是Python,因此只需实现标准的类接口即可。

需要注意的一点是,PyTorch随附的许多电池对视力问题(在火炬视觉包装中找到)有很大的偏见,其中一些文本和音频支持更为基本。 我很高兴地报告,在1.0以后的时代,torchtext和torchaudio软件包得到了很大的改进。

[ 也在InfoWorld上:最佳的软件开发,云计算,数据分析和机器学习产品 ]

PyTorch规则研究

PyTorch是研究人员的天堂,您可以在所有大型深度学习会议的论文中看到它的使用。 在2018年,PyTorch增长Swift,但在2019年,它已成为CVPR , ICLR和ICML等的首选框架。 这种全心全意拥抱的原因肯定与我们上面提到的第一个原因有关:PyTorch是Python。

创建新的自定义组件是标准Python类的简单,稳定的子类,尝试新概念要容易得多。 而且所提供的灵活性意味着,如果您想编写一个将参数信息发送到TensorBoard,ElasticSearch或Amazon S3存储桶的层,就可以做到这一点。 想要引入深奥的库并在网络培训中内联使用它们,还是在培训循环中尝试新的尝试? PyTorch不会妨碍您。

使PyTorch稍微退缩的一件事是缺乏从研究到生产的明确途径。 确实,无论PyTorch接管了多少研究工作,TensorFlow仍会为生产使用量起主导作用。 但随着PyTorch 1.3和扩大TorchScript ,它已成为容易使用,使用JIT引擎编译研发代号为图表示,随着产生的加速和方便的导出为一个C ++运行时Python的注释。 如今,支持将PyTorch与Seldon Core和Kubeflow集成在一起,从而允许在Kubernetes上进行生产部署,该部署几乎(不十分)像使用TensorFlow那样简单。

PyTorch使学习深度学习变得容易

那里有数十种深度学习课程,但是对我来说, fast.ai课程是最好的-而且它是免费的! 虽然课程的第一年严重靠在Keras的fast.ai团队-杰里米·霍华德,雷切尔·托马斯和维尔托德Gugger -切换到PyTorch在使用过程中的第二次迭代,并没有回头。 (尽管公平地说,他们对TensorFlow的Swift持乐观态度。)

在本课程的最新版本中,您将发现如何在诸如文本,视觉域中的分类,分割和预测等任务上获得最新的结果,并全面了解GAN和许多甚至是精通专家的技巧和见解也会启发您。

虽然fast.ai课程使用fast.ai自己的库在PyTorch之上提供了进一步的抽象(从而使您更容易掌握深度学习),但该课程还深入研究了基础知识,并从PyTorch建立了类似PyTorch的库。从头开始,这将使您彻底了解PyTorch内部的工作原理。 fast.ai团队甚至设法解决了主线PyTorch中的一些错误。

[ 也在InfoWorld上:2020年的人工智能预测 ]

PyTorch有一个很棒的社区

最后,PyTorch社区是一件了不起的事情。 pytorch.org的主要网站上既有与PyTorch版本保持良好同步的出色文档 ,又有一系列出色的教程 ,涵盖了从PyTorch的主要功能突如其来的一小时,到深入探讨如何使用自定义C ++扩展库的内容。操作员。 尽管教程可以在培训/验证/测试拆分和培训循环等方面使用更多的标准化,但它们是宝贵的资源,尤其是在引入新功能时。

除了官方文档之外,位于forum.pytorch.org上基于Discourse的论坛是一个了不起的资源,您可以在其中轻松地与核心PyTorch开发人员进行交谈并获得帮助。 每周有1500多个帖子,这是一个友好而活跃的社区。 虽然讨论更多地集中在fast.ai自己的库上,但forums.fast.ai上的类似论坛是另一个很棒的社区(有很多交叉),它渴望以一种非守门的方式帮助新来者,这很可惜。深度学习讨论的许多领域中的问题。

PyTorch今天和明天

您已掌握了使用PyTorch的五个理由。 正如我在开始时所说,并非所有这些都是PyTorch与竞争对手独有的,但是所有这些原因的结合使PyTorch成为我选择的深度学习框架。 PyTorch当前确实存在某些不足的地方-例如,在移动网络中,网络稀疏,并且模型易于量化,仅需选择三个即可。 但是,鉴于高速发展,到今年年底,PyTorch在这些领域的表现将更加强大。

另外两个例子只是为了使我们满意。 首先, PyTorch Elastic (于12月作为实验功能推出)扩展了PyTorch的现有分布式培训包,以提供对大型模型的更强大的培训。 顾名思义,它是通过在多台具有弹性的机器上运行来实现的,从而允许节点随时进入和退出训练作业,而不会导致整个作业崩溃。

[ 同样在InfoWorld上:什么是CUDA? GPU的并行编程 ]

其次, OpenAI宣布将采用PyTorch作为其主要开发框架。 这是PyTorch的一大胜利,因为它表明GPT-2的创建者(一种用于回答问题,机器翻译,阅读理解和总结的最先进的语言模型)相信PyTorch可以为他们提供更高的生产力在TensorFlow的环境中进行迭代。

在Preferred Networks将其深度学习框架Chainer置于维护模式并转移到PyTorch之后,OpenAI的决定着重说明了PyTorch在过去两年中取得了长足的发展,并强烈暗示PyTorch在未来几年将继续改善并吸引用户。来。 如果AI世界中的这些大公司更喜欢使用PyTorch,那么对我们其他人也可能是有益的。

翻译自: https://www.infoworld.com/article/3528780/5-reasons-to-choose-pytorch-for-deep-learning.html

深度学习pytorch

你可能感兴趣的:(大数据,python,机器学习,人工智能,深度学习)