PyTorch杠上TensorFlow:谁才是增长最快的深度学习框架?

2019 年 5 月 09 日

PyTorch杠上TensorFlow:谁才是增长最快的深度学习框架?

深度学习框架的流行趋势正在快速变化,其中最受瞩目的莫过于TensorFlow和PyTorch。前段时间,TensorFlow发布了2.0(Alpha)版本,不仅推出了许多新功能,也通过引入Keras高级API和EagerExecution模式让入门门槛进一步降低。但是这些改变并没有减慢PyTorch追赶的步伐。在今天这篇文章中,本文作者通过GitHub、Medium文章、arXiv论文和LinkedIn等多个维度评估了这两款深度学习框架的最新发展趋势。


2018 年 9 月,我在这篇文章中从市场需求、使用和受欢迎程度三方面比较了所有主要的深度学习框架。 其中,TensorFlow 是深度学习框架中无可争议的重量级冠军,PyTorch 则是引发了热烈讨论的年轻新秀。


在过去六个月中,这些领先的深度学习框架又有什么变化呢?



为了回答这个问题,我查看了IndeedMonsterLinkedInSimplyHired上的职位列表数量。 我还评估了Google搜索量GitHub活动Medium 文章、ArXiv文章和Quora主题关注者的变化。 总的来说,这些资料来源描绘了市场需求、使用和兴趣增长的全面情况。


集成和更新


我们最近在 TensorFlow 和 PyTorch 框架中看到了几个重要的进展。


PyTorch v1.0 于 2018 年 10 月发布,同时 FastAI v1.0 发布。 这两个版本的发布都是重要的里程碑,标志着深度学习框架趋于成熟。


TensorFlow 2.0 alpha 于 2019 年 3 月 4 日发布,它增加了新的功能并改善了用户体验,并且更加紧密地集成了 Keras 作为其高级 API。


方法论


在本文中,我将 Keras 和 FastAI 包含在比较中,因为它们与 TensorFlow 和 PyTorch 紧密集成,并且还提供了评估 TensorFlow 和 PyTorch 的尺度。




我不会在本文中探索其他深度学习框架。 我希望我能够收到 Caffe、Theano、MXNET、CNTK、DeepLearning4J 或 Chainer 等值得讨论的反馈。 虽然这些框架各有其优点,但似乎没有一个框架显示出其可以媲美 TensorFlow 或 PyTorch,并且它们也没有与这两个框架紧密结合。


搜索在 2019 年 3 月 20 日至 21 日进行。源数据在此Google表格中。


我使用了 plotly 数据可视化库来探索流行度,对于交互式 plotly 图表,请在此处查看我的 Kaggle Kernel。


让我们看看每个类别的结果。


在线职位列表的变化


为了确定在当今的就业市场中需要哪些深度学习库,我在 Indeed、LinkedIn、Monster 和 SimplyHired 上搜索了工作列表。


我同时搜索了关键词”机器学习“和深度学习框架名,比如,TensorFlow 通过”机器学习 TensorFlow“搜索关键词进行评估。 用此方法是出于与历史比较的原因。 不加关键词”机器学习“的搜索没有产生明显不同的结果。 搜索区域是美国。


我从 2019 年 3 月的职位列表数量中减去了六个月前的职位列表数量,下面就是我发现的内容:




TensorFlow 的职位列表增幅略大于 PyTorch, Keras 也显示出了职位列表数的增长 —— 大约是 TensorFlow 的一半,FastAI 仍然没有出现在任何工作列表中。


请注意,除了 LinkedIn 之外,PyTorch 在其他所有求职网站上都有更多的额外岗位列表。 另外,从绝对数量上讲,TensorFlow 的工作列表数量几乎是 PyTorch 或 Keras 的三倍。


Google 搜索活动的平均变化


在大型搜索引擎上进行网络搜索的行为是衡量人气的指标。 我查看了过去一年 Google 趋势中的搜索记录。 我在世界范围内搜索了对机器学习和人工智能类别的兴趣。 Google 不提供绝对搜索数字,但确实提供了相对数据。


我统计了过去六个月的平均兴趣分数,并将其与更早的六个月的平均兴趣分数进行了比较。



在过去的六个月中,TensorFlow 的相对搜索量有所下降,而 PyTorch 的相对搜索量却在增长。


下面这个来自谷歌的图表显示了过去一年各个框架的搜索兴趣。



(蓝色表示 TensorFlow;黄色表示 Keras;红色表示 PyTorch;绿色表示 FastAI)


Medium 新文章


Medium 是数据科学文章和教程的热门聚集地。 我希望你会喜欢它!


在过去的六个月里,我统计了在谷歌网站搜索出的 Medium.com 文章数量,发现与 TensorFlow 和 Keras 相关的文章数量差不多,而 PyTorch 则相对较少。



作为高级 API,Keras 和 FastAI 受到新的深度学习从业者的欢迎, Medium 有许多教程展示了如何使用这些框架。


arXiv 新文章


arXiv 是一个在线存储库,大多数深度学习学术文章都发布在此。 我用 Google 搜索了在过去六个月里在 arXiv 上提及各个框架的新文章 。



TensorFlow 的新文章出现率最高。


新的 GitHub 活动


GitHub 上的近期活动是衡量框架流行度的另一个指标。 我在下面的图表中描绘了 GitHub 点赞 、复制、关注和贡献者的数量。



TensorFlow 在每个类别中拥有最多的 GitHub 活动。 然而,PyTorch 在关注和贡献者的增长方面非常接近。 此外,FastAI 也增加了许多新的贡献者。


毫无疑问,Keras 的一些贡献者对 TensorFlow 库也进行了研究。 值得注意的是,TensorFlow 和 Keras 都是由 Google 员工负责的开源产品。


Quora 新粉丝


我新增了 Quora 主题关注者数量 —— 一个我之前没有统计数据的新类别。



在过去六个月中,TensorFlow 主题新增的粉丝数量最多,而 PyTorch 和 Keras 的粉丝增量就少了很多。


获得所有数据后,我将其合并为一个度量指标。


增长分数计算方法


以下是我计算增长分数的方法:


  1. 把所有特征值缩放至0到1之间。

  2. 聚合在线职位列表和GitHub活动子类别。

  3. 对各个类别根据以下百分比加权。



4. 为了便于理解,各加权分数乘以 100。


5. 将每个框架的类别分数汇总为单个增长分数。


其中,工作列表的权重占总分的三分之一多一点,原因也很俗气,有钱能使鬼推磨。 这种权重系数的划分似乎是在各种类别之间取得了适当的平衡。 与我在 2018 年对各框架能力系数的分析不同,这次我没有包括 KDNuggets 的使用情况调查(没有新数据),也没有包括书籍(六个月内发布的数量不多)。


结果


下面的表格中列出了四种主流框架在各个类目上的变化情况:



下面是各个类别的分数,以及最后汇总的分数:



下面是最终的增长分数:



TensorFlow 是市场需求最多,也是增长最快的框架,它的领先地位不会在短期内被颠覆。 PyTorch 也在迅速发展,它在工作列表中的大量增加证明了其使用和需求的增加。在过去的六个月里,Keras 也有了很大的发展。最后,值得注意的是,FastAI 是从较小的基数开始发展的,它是最年轻的深度学习框架。


TensorFlow 和 PyTorch 都是很好的值得学习的框架。


学习建议


如果你想学习 TensorFlow,我建议你从 Keras 开始。我推荐 Chollet 的Python深度学习和 Dan Becker 关于Keras的DataCamp课程。 Tensorflow 2.0 通过 tf.keras 使用 Keras 作为其高级 API。这里有Chollet对 TensorFlow 2.0 的快速入门介绍。


如果你想学习 PyTorch,我建议你从 FastAI 的 MOOC 实践深度学习编码(v3)开始,学习深度学习基础知识、FastAI 和 PyTorch 的基础知识。


TensorFlow 和 PyTorch 的未来发展方向是什么?


未来发展方向


我一直听说,与 TensorFlow 相比,人们更喜欢使用 PyTorch。 PyTorch 更具 pythonic,并且具有更一致的 API,它还具有原生的 ONNX 模型导出,可用于加速推理。此外,PyTorch 与 numpy 共享许多命令,这减少了学习它的障碍。


然而,TensorFlow 2.0 完全是为了改进用户体验,正如谷歌首席决策情报工程师 Cassie Kozyrkov 在此解释的那样。 TensorFlow 现在将拥有更直接的 API、简化的 Keras 集成和 eager execution 选项。这些变化以及 TensorFlow 的广泛采用应该有助于该框架在未来几年保持流行。


TensorFlow 最近宣布了另一个激动人心的计划:Swift for TensorFlow的开发。 Swift是一种最初由 Apple 构建的编程语言,在执行和开发速度方面,Swift 比 Python 有许多优势。 FastAI 将在部分高级 MOOC 中使用 Swift for TensorFlow ——请参阅 FastAI 联合创始人 Jeremy Howard 关于此主题的帖子。这种语言可能不会在一年或两年内进入黄金时间,但它可能是对当前深度学习框架非常有用的改进。


语言和框架之间的协作和交叉授粉肯定正在发生。


影响深度学习框架的另一个进步是量子计算。一台可用的量子计算机可能还需要几年的时间才会出现,但谷歌、IBM、微软和其他公司正在考虑如何将量子计算与深度学习相结合。各类框架需要适应这项新技术。


总结


目前来看,TensorFlow 和 PyTorch 都在快速增长, 两者现在都有很好的高级 API —— tf.keras 和 FastAI——它们降低了深度学习入门的门槛。本文还带你了解了一点最近的发展和未来方向。


如果你想要以交互方式使用本文中的图表或复制 Jupyter 笔记本,可以访问这里:https://www.kaggle.com/discdiver/2019-deep-learning-framework-growth-scores


希望本文的深度学习框架比较能对你有所帮助。


原文链接:


https://towardsdatascience.com/which-deep-learning-framework-is-growing-fastest-3f77f14aa318


2019 年 5 月 09 日 17:4810332

评论 1 条评论

发布
用户头像
好文👏
2019 年 05 月 12 日 17:37
回复
没有更多评论了
发现更多内容

音画同步体验有多好,来看看即构的自研互动白板就知道啦

ZEGO即构

在线教育 SVG canvas

大数据技术发展(一):大数据技术的起源

抖码算法

Java 大数据 hadoop 大数据处理 大数据技术

C++ static 与 const 的认识

小林coding

c++ 编程 static关键字

C++ 流插入和流提取运算符的重载

小林coding

c++ 编程

从根上学习Git

书旅

git 工具 版本控制 版本管理工具

C++ this指针的理解和作用

小林coding

c c++ 指针

全球移动服务生态的暗涌与新机

脑极体

C++ 深入浅出工厂模式(初识篇)

小林coding

c++ 设计模式 工厂模式

让类/进程/脚本「单身」的方法

小林coding

c c++ Shell 设计模式 单例模式

超超超全递归技巧讲解,这次带你拿下递归

多选参数

数据结构 算法 递归 数据结构与算法

C++ 一篇搞懂多态的实现原理

小林coding

c++ 编程 封装、继承、多态

SpreadJS 纯前端表格控件应用案例:铭天预算执行系统

Geek_Willie

SpreadJS 预算执行系统

Web 全栈开发利器: 强大的在线 Cloud IDE

华为云开发者社区

Web python3.x 全栈 编码 CloudIDE

「C++ 篇」答应我,别再 if else 走天下了可以吗

小林coding

c++ 编程 设计模式 编程习惯 编程风格

HTTP协议-进阶

Jaykey

HTTP 前端进阶训练营

精美前端UI(VUE)界面,ASP.NET通用工作流开发分享

雯雯写代码

工作流 可视化

2020大厂web前端面试常见问题总结

华为云开发者社区

CSS 响应式 浏览器 面试题 web前端

C++ 深入浅出工厂模式(进阶篇)

小林coding

c++ 设计模式 工厂模式

优化教育体验 智微智能高品质录播系统

InfoQ_967a83c6d0d7

为什么直播系统不用RTP协议

soolaugust

WebRTC 直播 RTMP rtp

国内首家 ABM 营销技术服务商火眼云完成5000万元A轮融资

人称T客

C++ 一篇搞懂继承的常见特性

小林coding

c++ 编程 继承

修改系统时间,导致 sem_timedwait 一直阻塞的问题解决和分析

小林coding

Linux 编程 问题处理

字节跳动想招什么样的技术人?

池建强

HTTP协议-基础

Jaykey

HTTP 前端进阶训练营

C++ 运算符重载的基本概念

小林coding

c++ 编程

C++ 手把手教你实现可变长的数组

小林coding

c++ 编程 数组

Go语言专家测试,80%的人第一题就挂了!

博文视点Broadview

go 云原生 评测

数字货币钱包开发方案,加密货币钱包搭建

WX13823153201

数字货币钱包开发

C++ 赋值运算符‘=‘的重载(浅拷贝、深拷贝)

小林coding

c++ 编程 浅拷贝和深拷贝

第二次推荐笔记:wolai

申屠鹏会

PyTorch杠上TensorFlow:谁才是增长最快的深度学习框架?-InfoQ