出品 | 磐创AI团队
编辑 | 磐小仙
2020年深度学习框架现状
自从我对主要的深度学习框架进行研究以来,已经过去了10个月。PyTorch和TensorFlow已经成为了首选的框架。TensorFlow领先了PyTorch两年,但是PyTorch在许多领域都在缩小差距。让我们来看看现在的状况!????
PyTorch和TensorFlow?
新的信息?
TensorFlow和PyTorch看起来越来越相似。TensorFlow采用PyTorch的创新点,而PyTorch也采用TensorFlow的创新点。值得注意的是,现在两种语言都可以在动态图模式或静态图模式下运行。
这两个框架都是开源的,但是PyTorch是Facebook的产品,而TensorFlow是Google的产品。
让我们看看其他一些明显的差异和更新点。????
PyTorch
在写本文时,PyTorch的版本为1.4。它一直在增加功能以增加行业采用率。现在,可以在Google Cloud的Tensor处理单元(TPU)上能更轻松地运行PyTorch,这是训练复杂的深度学习模型最快的方法。
此外,Chainer框架的维护者Preferred Networks最近将他们的团队带到了PyTorch。最后,如果您使用C++或Java,PyTorch会为您提供一个C++或Java版本。
TensorFlow
TensorFlow 2.0引入了许多改进,使API更加简化和对编程更友好。它高度集成了Keras作为前端高级API。Keras仍然可以与其他框架一起使用,但是通常将其用作TensorFlow的一部分才是更有意义的。
此外,如果您更喜欢JavaScript而不是Python,TensorFlow会为您提供JavaScript版本。
TensorFlow仍比PyTorch在生产和边缘深度学习方面拥有更多优势,但PyTorch越来越接近特征奇偶性(feature parity)。
方法
如果您想学习流行的深度学习框架,PyTorch和TensorFlow是两个主要的选择。我不会考虑其他框架,因为其他框架没有被广泛使用。
在之前的分析中,我研究了许多指标。结果显示TensorFlow和PyTorch都以不错的速度在增长。在本文中,我将重点介绍我认为最重要的四个指标:工作需求(Job Listings),研究领域,在线搜索和使用报告(self-reported use)。
让我们开始吧!????
工作需求(Job Listings)
美国时间2020年1月26日,我在indeed,monster,SimplyHired和LinkedIn网站上搜索关键字TensorFlow和PyTorch。
TensorFlow在每个求职网站上平均出现次数是PyTorch的两倍,以下是原始数字:
这是结果占总数的百分比。
在十个月前的分析中,我注意到TensorFlow出现的次数是PyTorch的三倍。现在TensorFlow的出现的次数降低到2倍。????
研究领域
PyTorch现在是顶级研究会议论文的领导者。贺拉斯,前PyTorch实习生,他研究和讨论过这个话题。这是显示增长率的图表。
来源:https://chillee.github.io/pytorch-vs-tensorflow/
对于该会议,任何超过50%的比例都意味着PyTorch的提及量超过TensorFlow。
作为更详细的示例,这是NeurlIPS会议的原始数据比较,PyTorch取代了TensorFlow。
来源:https://chillee.github.io/pytorch-vs-tensorflow/
在最近的NerulIPS会议上,使用PyTorch的论文数量为166,而使用TensorFlow的论文数量为74。使用PyTorch的论文数量从2018年超过使用TensorFlow的论文数量,而在2019年,使用PyTorch的论文数量是使用TensorFlow的论文数量的两倍以上。
PyTorch如此快地超过TensorFlow令人惊讶。有趣的是,我们需要看PyTorch是否会继续在这一领域扩大领先地位。????
接下来让我们看看在线搜索。
搜索人气(Search Popularity)
我使用Google趋势查找了2017年1月26日至2020年1月26日这段时间内,PyTorch(软件)和TensorFlow(计算机应用程序)的相对搜索量。
下面是我查找的结果,蓝色是TensorFlow,红色是PyTorch:
Google搜索。蓝色是TensorFlow。红色是PyTorch。
显然,没人愿意在寒假前后搜索深度学习框架。????????
这是带有线性趋势线的相同数据。
蓝色是TensorFlow。红色是PyTorch。请参见Tableau Public上的交互式在线版本。
PyTorch已经大大地缩小了差距。看一下这个趋势是否会一直成立,这让我觉得很有趣。
最后,让我们看看人们在说什么。
使用报告
在2019 年的Stack Overflow开发人员的调查中,有10.3%的受访者表示使用过TensorFlow,而3.3%的受访者表示使用过Torch / PyTorch。专业开发人员的子集得分很相似(9.4%和2.9%)。没有其他深度学习框架的报道。
值得注意的是,这项调查是在2019年初进行的,因此我们可以拭目以待,看看2020年的结果如何。????
概括
与PyTorch相比,TensorFlow在更多工作需求中仍被提及,但差距正在缩小。PyTorch在顶级会议的研究论文中占据领先地位,几乎弥补了Google搜索结果的空白。根据最新的Stack Overflow开发人员调查,TensorFlow的使用率仍然是PyTorch的三倍。
总体而言,TensorFlow在大多数领域仍处于领先地位,但PyTorch却在增长。????
您应该关注什么?
这个项目的诞生是出于我希望花时间使用和学习对人们来说最有意义的深度学习框架。至于未来两年的答案是PyTorch还是TensorFlow,我仍然不确定。
PyTorch可能会继续朝着增加的方向发展。但是,TensorFlow仍然是安全的选择。在可预见的将来,尤其是雇主,将对tensorflow有需求。
值得注意的是,两个框架都本着合作竞争的精神在不断地创新。即将到来的创新将决定其受欢迎程度并为用户带来利益。????
资源
如果您准备学习深度学习,我建议学习以下资源:
fast.ai MOOC具有高品质的学习视频和社区支持。如果您想学习PyTorch,它将特别有用。
乔莱特的使用Python进行深度学习这本书是深度学习的重要入门。他是Keras的原始作者。如果您想学习TensorFlow,这是一个特别好的选择。
无论TensorFlow和PyTorch在他们的文档中都有很好的教程和指南。
先决条件
在进行深度学习之前,建议您先学习Python。如果您是Python的新手,我可以向您推荐一本值得纪念的Python(书名:Memorable Python )书吗?
熟悉Python的基础知识之后,我建议您学习Python的NumPy和pandas库以进行数据清理和分析。麦金尼的《Python for Data Analysis》书很好地涵盖了NumPy和pandas。我也有pandas的书,因此请订阅我的Data Awesome邮件列表,让你成为在发布后第一个进行学习的人。
最后,在进入机器学习的深度学习分支之前,我建议您通过scikit-learn库学习使用更通用的机器学习算法。我喜欢Müller和Guido的Python机器学习入门。此外,AurélienGéron的第二版使用Scikit-Learn,Keras和TensorFlow动手学习机器学习涵盖了如何使用TensorFlow 2.0进行机器学习和深度学习。
包裹(Wrap)
我希望您发现对最受欢迎的深度学习框架的状态进行的评估非常有用。如果您觉得很有用的话,请在您喜欢的社交媒体上分享它,以便其他人也可以找到它。????
我写有关Python,Docker,SQL和其他技术主题的文章。如果您有任何兴趣,请关注我并在此处阅读更多内容。
愉快的决定!⚖️
原文链接 :https://towardsdatascience.com/is-pytorch-catching-tensorflow-ca88f9128304
- end -