首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

OpenAI 全面使用 Pytorch,TensorFlow与PyTorch 相爱相杀

不久前,OpenAI 宣布会在未来的项目中使用 PyTorch 机器学习框架。OpenAI 是由马斯克和其他人共同创办的顶级 AI 研究公司,曾开发 AI 项目 5 次击败 Dota2 世界冠军、利用机器人还原魔方等。

选择 Pytorch 作为深度学习框架

OpenAI 表示,他们将深度学习框架 PyTorch 作为统一的标准,让团队能够更好创建和共享模型。

OpenAl选择 PyTorch 的主要原因是为了提高 GPU 的大规模研究效率,使用 PyTorch 也很容易执行新的研究思路,它可以将生成建模中的迭代时间从几周缩短到几天。而且 Pytorch 也有很多快速增长的开发者社区,很多大型研究机构 Facebook 等都在使用,推动了技术发展。

OpenAI 目前已计划将在 PyTorch 上提供开源的教育资源 Spinning Up in Deep RL,这将更便于深度强化学习。该公司在一份声明中说:「展望未来,我们将主要使用 PyTorch 作为我们的深度学习框架,但有时在有特定技术原因时也会使用其他框架。」

PyTorch 与 Tensorflow 的相爱相杀

近几年来,PyTorch 与 Tensorflow 相爱相杀,OpenAI 这一举动无疑于将 Pytorch 推向了浪尖。

在线搜索量

在谷歌搜索趋势中,从 2017 年 2 月 4 日到 2020 年 2 月 4 日,PyTorch 和 TensorFlow 在谷歌的搜索量逐渐逼近,差距正在缩小。

Google 搜索兴趣(蓝色的是 PyTorch,红色的是 TensorFlow)

在线求职网站出现频次

根据数据科学家 Jeff Hale 对两个框架的调研,截止 2020 年 1 月 26 日,在 LinkedIn 等求职网站上,TensorFlow 的平均出现频次是 PyTorch 的两倍,而在一年前,TensorFlow 出现的次数是 PyTorch 的三倍。

TensorFlow 和 PyTorch 在求职网站上的平均出现频次

两个框架出现频次的占百分比

顶会论文出现次数

从前 PyTorch 实习生 Horace He PyTorch 所做的调研发现,当前 PyTorch 在各大顶会论文中出现的次数处于领先地位。如下图所示,从 2017 年至 2019 年,在多个顶会论文中 PyTorch 出现次数在 TensorFlow/PyTorch 总出现次数的占比大于 50%,意味着 PyTorch 出现的次数多于 TensorFlow。

PyTorch 出现次数在 TensorFlow/PyTorch 总出现次数的占比

为了更细节化比较,下图展示了 2016 年至 2019 年间,PyTorch 和 TensorFlow 在 NeurlPS 会议论文的趋势,实线表示 PyTorch,虚线表示 TensorFlow。

PyTorch 和 TensorFlow 论文在 NeurlPS 会议的占比

从 2018 年到 2019 年,PyTorch 的论文数量不断逼近 TensorFlow 的论文数量,从一倍的差距到相差甚少。在最近的 NeurlPS 会议上,PyTorch 的论文数量为 166,而 TensorFlow 的论文数量为 74,前者是后者的两倍。可见 PyTorch 在学术界越来越受欢迎。

TensorFlow 虽仍处于领先地位,但 PyTorch 正一步步取得进展,逐渐缩小差距。在学术界,PyTorch 因其可快速实现和验证想法的优点,已经超越了 TensorFlow。

PyTorch

PyTorch 于 2016 年 10 月在 Facebook 上公开发布,是一个基于 Torch 的开源机器学习库。PyTorch 使用 Python 作为开发语言,友好直观。PyTorch 作为深度学习模型的功能:

支持 Python。PyTorch 与 python 数据科学相结合,可以看作是加入 GPU 支持的 numpy,实现强大的 GPU 加速。

执行代码高效。用户无需等待编写完整的代码即可检查是否有效,因此可以高效运行部分代码并进行实时检查,可以轻松找到出错代码,避免浪费太多时间。

动态计算图。PyTorch 提供了一个框架,可以随时构建计算图,甚至可以在运行时更改它们,如果想要改变网络结构,通过一次反向求导技术,可以任意改变神经网络行为,使得任何疯狂想法获得最高速度和最佳灵敏度。

TensorFlow

TensorFlow 是由 Google 开发的一个著名深度学习库,以计算图的形式来表示整个计算过程。它具有强大的可视化功能,也可用于高级模型的开发。TensorFlow 的功能:

简单的内置高级 API。通过使用直观的高级 API(如 Keras),该库可以构建和训练机器学习模型,使得模型迭代更加快速、易于调试。

随时随地部署模型。无论使用哪种语言,都可以在本地、浏览器或移动设备中训练和部署模型。

PyTorch 与 TensorFlow 之间的区别

生产部署

工业界更注重生产部署,这对于 TensorFlow 来说无疑是赢家,我们可以使用 TensorFlow 框架直接在 TensorFlow 中部署模型,在现有的生态基础上进行算法组合和调优,能更快速给出方案、快速跑通程序来完成特定任务。而在 PyTorch 中,与最新的稳定版本 1.0 相比,虽然这些生产部署更易于处理,但是它并没有提供任何框架将模型直接部署到 web 上,必须要使用 Flask 或 Django 作为后端服务器。所以,对于目前的部署生态,TensorFlow 比 PyTorch 更加老练。

计算图构造

TensorFlow 使用静态图,这意味着用户首先需要定义模型的计算图,之后不断运行机器学习模型,需要图经过编译然后在执行引擎上执行。然而 PyTorch 具有创建图的动态特性,每次都会重新构建新的计算图,并且可在运行中操作图,便于调试。

PyTorch 与 TensorFlow 各有自己的特点,功能各有千秋,接下来其他公司将作何选择,让我们拭目以待。

参考链接:

[1] https://openai.com/blog/openai-pytorch/

[2] https://hackr.io/blog/pytorch-vs-tensorflow

[3]https://towardsdatascience.com/is-pytorch-catching-tensorflow-ca88f9128304

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200215A0K02V00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

相关快讯

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券