美文网首页机器学习和人工智能入门人工智能时代(AI)
争论不休的TF 2.0与PyTorch,到底现在战局如何了?

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

作者: AI科技大本营 | 来源:发表于2019-04-10 12:23 被阅读12次

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

    相关文章

      网友评论

        本文标题:争论不休的TF 2.0与PyTorch,到底现在战局如何了?

        本文链接:https://www.haomeiwen.com/subject/usrniqtx.html