争论不休的TF 2.0与PyTorch,到底现在战局如何了?
作者 | Jeff Hale
译者 | Jackey
编辑 | Jane
出品 | AI科技大本营(id:rgznai100)
【导语】 TensorFlow 2.0 和 PyTorch 1.0 陆续发布后,关于它们二者到底谁更胜一筹的讨论一直未停,也一直没有一个结果。到底目前谁更受青睐,本文中,作者围绕 TensorFlow 2.0 和 PyTorch 1.0,搜集多方来源的数据为大家进行深入分析,除此之外,还谈到一些学习建议,未来深度学习框架还有哪些方向值得大家关注等话题。
TF 2.0 vs PyTorch 焦灼之战
2018 年 9 月,作者曾写过一篇文章,从需求量、使用量、热门度等角度对比分析了主流深度学习框架。TensorFlow 毫无争议地成为重量级深度学习框架的冠军,PyTorch 即是赛场新秀,也是后起之秀。那么,在过去的六个月的时间里,深度学习框架的赛场又有什么新进展?
为此,我查询了 Indeed、Monster、LinkedIn 和 SimplyHired 几家招聘网站的职位信息,还考量了谷歌搜索的结果、GitHub的表现、Medium 和ArXiv 的新增文章数,Quora 上关于深度学习框架主题的关注者数量,这些信息勾勒出了深度学习框架在需求、使用和热度增长方面的大体概况。
集成与更新
最近,TensorFlow 和 PyTorch 框架都有一些重要的进展。PyTorch 1.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 日,并且把数据可视化展现出来,想要源数据和参考交互图表的小伙伴们可以访问下面两个地址:
https://docs.google.com/spreadsheets/d/1Q9rQkfi8ubKM8aX33In0Ki6ldUCfJhGqiH9ir6boexw/edit?usp=sharing
https://www.kaggle.com/discdiver/2019-deep-learning-framework-growth-scores
接下来,我们就一起来看看更具体的对比分析结果。
一、招聘网站:职位需求变化
为了解现在的招聘需求中看重哪些深度学习框架,我在 Indeed、LinkedIn、Monster 和SimplyHired 上搜索了相关职位。
用“机器学习”+“库名”这两个关键词进行搜索。比如我要搜索哪些岗位需要 TensorFlow,就输入“ machine learning TensorFlow”,这样做也是个人习惯使然。不加上机器学习这个关键词进行搜索也可以,并不会产生明显不同的结果。(搜索区域为美国)。
排除 2019 年 3 月前的职位信息,以限定数据时间范围为这半年内,整理后发现:
对掌握 TensorFlow 的职位比 PyTorch 略高。Keras的职位需求大约是 TensorFlow 的一半。目前没有什么招聘需求中对 fastai 有明确的要求。值得注意的是,除了 LinkedIn,其他求职网站上需要掌握 PyTorch 的职位要比 TensorFlow 多。
二、Google Trends:分析谷歌搜索数据
谷歌作为最大的搜索引擎,其网页搜索结果可以作为衡量深度学习框架受欢迎程度的标准之一。分析 Google Trends 看了过去一年来各个框架的检索历史,搜索全球范围内,用户对于机器学习和人工智能类别的搜索热度。谷歌不提供绝对的搜索数字,但提供了大概数字,可以进行参考。
通过计算过去六个月,用户对各个框架搜索热度的平均分数,并将其与在此之前的六个月的平均分数进行对比,TensorFlow 的搜索量相对下降,PyTorch 的搜索量则有所提升。下图反映了过去一年中,用户使用谷歌搜索各个框架的热度。
(蓝色:TensorFlow;黄色:Keras;红色:PyTorch;绿色:fastai)
三、博客网站:新文章发表情况
Medium 是数据科学文章和教程的重要发布渠道之一,很多人会在上面分享自己的博文。
同样在过去六个月中,Medium 上关于TensorFlow 和 Keras 发表的文章数量十分接近,而 PyTorch 则相对较少。 作为高级 API,Keras 和 fastai 也受到了很多深度学习开发者的欢迎,在 Medium 上也有很多教学文章。
四、arXiv:新论文中的使用情况
arXiv 想必大家都非常熟悉了,大多数人都会把自己的研究论文挂在上面。查找半年来 arXiv 上更新的论文中使用 TensorFlow 和 PyTorch 的数量发现,研究中使用 TensorFlow 的数量还是明显多于 PyTorch 的。
五、GitHub:四个数据
GitHub 的数据也可以作为评价框架受欢迎程度的一个指标,下面的四个图是分别对 Github 上不同深度学习框架 Stars、Forks、Watches 和 Contributors 的统计结果。无论是哪个数据,TensorFlow 都是 Top 1,不过 PyTorch 的 Watchers 数和 Contributors 数与 TensorFlow 非常接近,并没有很大的差距,与此同时 FastAI 的 Contributors 数量值得关注,其远高于 Keras,接近PyTorch。Keras 和 TensorFlow 本都是 Google 主导开发的,一些 Keras 的贡献者也在 TensorFlow 中参与开发,因此,Keras 的数据也会受此影响。
六、Quora:关注数量
在这次的对比分析中,新增加了一个新参考指标:Quora 上各框架的关注人数。这个指标以前没有参考过。过去六个月,TensorFlow 的关注者最多,PyTorch 和 Keras的关注者还远不及TensorFlow。
搜集完这些数据后,我把所有的信息整合到一个统一的评测量度中,下面就为大家介绍增长分数的计算。
增长分数计算
以下是计算增长分数的步骤:
1、将所有的信息转化成从 0到1 区间的数值。
2、聚合在线职位信息和 GitHub 活动的各个分项。
3、根据下图,对各类别进行加权计算。
4、将加权得分换算成百分制
5、将所有的得分求和,得出每个框架的增长得分。
在上面的 6 个类别中,职位信息数据占总比的 35%,其他五类权重相等。(金钱的推动力还是很现实的)。这样的划分似乎可以很好地平衡了各个分类的权重。与之前 2018 年加权分数分析不同,我没有考量 KDNuggets 的调查(没有更新数据)与新书出版情况(近六个月没有很多新书出版)。
对比结果
下表显示了各个框架的细分项得分:
查看谷歌表格可访问下面网址
https://docs.google.com/spreadsheets/d/1Q9rQkfi8ubKM8aX33In0Ki6ldUCfJhGqiH9ir6boexw/edit?usp=sharing
以下是各个类别和最终得分:
下图展现了各个框架的成长得分:
TensorFlow 还是需求量最大,增长最快的深度学习框架,其地位暂时不可取代。PyTorch 的增长同样迅速,职位需求的大幅增加也印证了其使用量和需求量的增长。Keras 在过去六个月中有所提升。最后,FastAI 本身基数较低,但也有增长。毕竟它还是这些框架中最新的那个。
无论是 TensorFlow 还是 PyTorch 都是值得学习的好框架。
学习建议
如果你要学习 TensorFlow,我建议你从 Keras 学起。首推 Chollet 的 Deep Learning with Python 和 Dan Becker 的 DataCamp course on Keras。TensorFlow 2.0 版本中集成了tf.keras,因此,现在在 TensorFlow 框架中就可以调用 Keras 了。如果你要学习 PyTorch,我建议你从 fastai 学起。可以学习慕课课程 Practical Deep Learning for Coders, v3,从深度学习基础,到 fastai 与 PyTorch 基础贯穿学习。
关于 TensorFlow 和 PyTorch,我们还能学习什么?
未来的方向
经常听开发者们说道,相比 TensorFlow,更喜欢用 PyTorch,因为 PyTorch 更适用于 python,其 API 也更稳定。它还有一个原生的 ONNX 模型接口,可以加速训练预测。此外,PyTorch 还有很多和 Numpy 一致的命令,这也降低了学习的难度。
然而,谷歌首席决策情报工程师凯西·科济尔科夫认为,TensorFlow 2.0版本专注于提升用户体验。更好用的接口、集成了 Keras,并增加了一个执行选项。这些改变,再加上 TensorFlow 的包容性,会让 TensorFlow 在接下来的时间里继续保持流行与热度。
TensorFlow 最近还宣布了一个令人激动的计划:开发一个 Swift for TensorFlow。Swift 是一种由苹果公司开发的编程语言,比 Python 的执行效率和开发速度都要快。慕课上 Fast.ai 的课程也会结合一些 Swift for TensorFlow,虽然这个语言距离成熟还需要时间,但是它对于深度学习框架而言,是一个重要的进展。语言和框架间的集成与借鉴也是一定会发生的。
另一个影响深度学习框架的因素是量子计算。距离量子计算机的有效利用还需要数年的时间,不过 Google、IBM、微软和其他一些公司已经开始思考如何集成量子计算和深度学习。届时,为使用新的技术,这些框架将会面临相应的调整。
TensorFlow 和 PyTorch 框架都在进步,它们都具备高级 API 接口(tf.keras和 fastai),降低深度学习的学习门槛。
原文链接:
https://towardsdatascience.com/which-deep-learning-framework-is-growing-fastest-3f77f14aa318
(本文为 AI大本营编译文章,转载请微信联系 1092722531)
关于 TF、PyTorch 或其他深度学习框架,你有哪些使用感受与经验,希望爱技术、爱分享的小伙伴们愿意与大家分享,可与我们联系,精彩原创内容还有稿费或纪念品哦!