查看原文
其他

争论不休的TF 2.0与PyTorch,到底现在战局如何了? | 技术头条

爱技术的 AI科技大本营 2019-04-17
点击上方↑↑↑蓝字关注我们~

2019 Python开发者日」全日程揭晓,请扫码咨询 ↑↑↑


作者 | 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 TensorFlowSwift 是一种由苹果公司开发的编程语言,比 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 或其他深度学习框架,你有哪些使用感受与经验,希望爱技术、爱分享的小伙伴们愿意与大家分享,可与我们联系,精彩原创内容还有稿费或纪念品哦!



精彩推荐

「2019 Python开发者日」演讲议题全揭晓!这一次我们依然“只讲技术,拒绝空谈”10余位一线Python技术专家共同打造一场硬核技术大会。更有深度培训实操环节,为开发者们带来更多深度实战机会。更多详细信息请咨询13581782348(微信同号)。

推荐阅读:




❤点击“阅读原文”,查看历史精彩文章。

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存