本篇文章2389字,读完约6分钟

编者按:2017年初,facebook发布了一个全新的机器学习工具包Pytorch,它是基于机器学习和科学计算工具torch的python语言。一旦发布,这个开源工具包已经被业界广泛关注和讨论。经过几个月的发展,pytorch已经成为从业者最重要的研发工具之一。为什么pytorch如此受欢迎,研究人员选择pytorch是出于什么考虑?为了解决这些问题,我们不妨看看专业人士今天说些什么。

为什么 PyTorch 这么火?一线开发者这样说

以下内容摘自饶金凤《智虎问答》。雷锋。(公开号码:雷锋。com)已经授权或授权了它。饶金凤曾就读于浙江大学计算机科学学院和马里兰大学,并在微软和谷歌实习。他的研究兴趣是深层神经网络和自然语言处理。

pytorch吸引我的特点如下:

本地计数= 0

对于成对(t)计数=计数+ 1结束

返回计数

2.签名支持。你不必自己定义和数学推导反向传播。这很实际。我记得很久以前,火炬中没有计算余弦相似度的函数。你必须自己定义余弦的前向和后向函数,并再次复习微积分。然而,自己倒写也是有益的。这是一个很好的学习过程,对你理解深度学习的原理很有帮助。当您的代码出错时,您可以清楚地知道从哪里开始调试。

为什么 PyTorch 这么火?一线开发者这样说

3.调试更容易。torch或pytorch的底层是用C语言实现的库函数。编写深度学习代码时,调试可能是最痛苦的事情。当结果出错时,您不知道您的超级参数是否设置不正确,或者模型是否定义不正确,或者图层是否计算不正确,整个模型的假设不适用于此数据集。为了找出原因,我们只能简化模型,试着犯错误。此时,pytorch可以逐层打印出计算结果,非常灵活(它只是nn调试的救星)。虽然其他一些工具也可以支持显示每一层的输出,但是依赖一些辅助功能来编写是很麻烦的。

为什么 PyTorch 这么火?一线开发者这样说

4.支持动态图形的创建。目前,深度学习平台主要采用两种方式来定义模型:静态计算图和动态计算图。大多数平台都采用了静态的定义,包括张量流、antano、caffe、keras等。静态图定义的缺点是在处理数据之前必须定义一套完整的模型,可以处理所有的边际情况。例如,在声明模型之前,您必须知道整个数据中句子的最大长度。相反,动态图形模型(现有平台,如pytorch、chainer、dynet)可以非常自由地定义模型。例如,传统的lstm在处理一个句子时通常以单词为单位,然后用word2vec初始化单词向量。但是经常有一些奇怪的词在词汇中找不到,也就是说,词向量不能用word2vec初始化。此时,您可能希望用字符级的表示来初始化该单词,因此您需要使用动态图形模型的定义。简而言之,动态图模型允许您在运行程序时动态修改模型结构,以便处理各种奇怪的角落输入,这在学术研究中表现出灵活性。

为什么 PyTorch 这么火?一线开发者这样说

上图左侧为静态图的计算框架,右侧为动态图的框架。静态图需要在处理数据之前定义一套完整的模型;动态图模型允许用户首先定义一个基本框架,然后根据数据实时修改模型。

另外一点是,当前版本的效率比torch低5%,这可能是因为创建动态地图很耗时。pytorch网站上有一个帖子讨论与torch的比较,可以看到:torch和pytorch的路线图

我还会考虑其他几点:

1.迁移成本。作为一个火炬用户,我已经习惯了它的开发过程,并且能够高效地实现所定义的模型。如果你想迁移到pytorch平台,你需要学习一些函数定义和用法,因为改变平台太麻烦了。

2.社区支持。作为一个新开发的平台,pytorch的社区支持仍然很弱,也没有开源代码和模型。我不知道有多少老火炬手已经搬到pytorch,但要积累一个好的社区环境需要很长时间。

在选择深度学习平台时,我会主要考虑易用性、学习成本和社区环境。例如,就torch而言,社区环境很好,但是在学习成本和易用性上有折扣。我认为这就是为什么许多新用户可能不会选择torch,这也是pytorch开发的初衷之一(降低学习成本和提高易用性以吸引更多新用户)。就pytorch而言,在开放之初,社区支持不是很强,但口碑迅速上升,最近社区发展迅速。

为什么 PyTorch 这么火?一线开发者这样说

总的来说,我非常喜欢pytorch的编程模式,而且非常容易使用,这是研究员推荐的。相反,如果您只想了解深度学习并快速开发简单实用的深度学习模型,建议使用keras+tensorflow作为入门工具(api简单+文档完整+社区强大)。

-

最后,在andrej karpathy博客上发布每个深度学习平台的使用率图片:

图像来源:t/r6g0qfb

[1] chainer:用于深度学习的下一代开源框架,tokui,seiya and oono,kenta and hido,shohei and clayton,justin,nips 2015,learning system workshop .

张量流&神经网络算法高级应用类即将开始!

从初级到高级,理论+实战,一站式深入了解张量流!本课程面向深度学习型开发人员,教授如何使用张量流解决特定问题,如图像识别和文本分析。为期10周的课程将从张量流的原理和基本实践技能开始,逐步教会学生如何在张量流上构建cnn、自编码、rnn、gan等模型,最终掌握一套基于张量流的深度学习和发展的专业技能。

作为思想工作的高级技术专家,童达和白华川两位教师在构建大数据平台和开发深度学习系统方面有着丰富的经验。

时间:每周二和周四晚上20: 00到21: 00

课程时长:共20小时,10周完成,每周2次,每次1小时

在线教学地址:mooc.ai/

雷锋。(公开号码:雷锋。相关阅读:

Facebook发布了开源框架pytorch,torch最终被移植到了python生态系统中

从原则到实战,英伟达教你用pytorch(1)构建rnn

从原则到实战,英伟达教你用pytorch构建rnn(第二部分)

雷锋文章版权所有。严禁擅自转载。详情请参考转载说明。

来源:搜狐微门户

标题:为什么 PyTorch 这么火?一线开发者这样说

地址:http://www.shwmhw.com/shxw/61266.html