深度学习框架排行榜:找工作学TensorFlow,PyTorch搜索量逼近Keras_量子位的博客-程序员秘密

深度栗 编译整理
量子位 报道 | 公众号 QbitAI

640?wx_fmt=gif

深度学习的世界,风云变幻。

五年前,还是Theano称霸的天下,如今完全不一样的了。

所以,一个叫Jeff Hale的数据科学家,想全方位观察一下,每个深度学习框架有多受欢迎,发现了很多有趣的现象。

先总体看一下,各个深度学习框架的武力值 (Power Scores) :

640?wx_fmt=png

TensorFlow的第一名无可争辩,也是找工作所需技能首选,但依然有些数据出人意料

比如,走出美国,最常用的框架就成了Keras

比如,PyTorch的谷歌搜索量逼近Keras。

比如,FastAI框架正在迅速积累开发者。

选手依次介绍

这些框架都是开源的,除了一位选手之外,大家都支持Python,有些还支持R或其他语言。

640?wx_fmt=png

△ 谷歌系选手


TensorFlow是最重量级的选手,谷歌系。GitHub活跃度最高,谷歌搜索量最大,关于它ArXiv论文也最多。

使用TensorFlow的开发者数量也是最多的。

640?wx_fmt=png

第二受欢迎的是Keras,几乎每一项指标都是第二名。根据官方标语,它是“为人类设计,不是为机器设计的API”。

Keras是在TensorFlow、Theano或者NLTK上运行的。容易上手,新人之选。

640?wx_fmt=png

Facebook系选手

第三名是PyTorch,Facebook系,也是独立框架的第二名 (Keras不独立) 。它比TensorFlow出生要晚,但热度增长很快。

PyTorch支持自定义 (Customization) ,这一点TensorFlow是不行的。

640?wx_fmt=png

第四名。Theano是蒙特利尔大学2007年开发出来的,也是最早强大起来的Python深度学习框架。

可是自从Joshua Bengio宣布停止更新不再维护,它就失去了许多拥趸。

640?wx_fmt=jpeg

MXNET排第五,来自Apache。不过,它的分数和Theano已经很接近了,随时可能取代第四名。不过,去年报告显示,MXNET用量有所下降。搜索量也不是很高。

640?wx_fmt=jpeg

△ 来自微软

第六名CNTK,是微软发布的认知工具包。微软为了和谷歌、Facebook竞争,推出了许多这样的产品,但用户并暂时不是很多。

640?wx_fmt=png

Deeplearning4J第七。榜单中唯一不支持Python的框架,用的是Java。

即便如此,用户还是可以把用Keras写的模型导入DL4J。

这位选手,是中途加入比赛的,最初的榜单里并没有它。Jeff选择补上它,所以为它多累计了4天数据。

DL4J特殊的地方在于,用全称简称分别统计的数据,差异比较大。做法是统一选取较高的数据。但总体分数不高,所以对结果影响不大。

640?wx_fmt=png

第八是FastAI,基于PyTorch搭建的新框架。API受到了Keras的启发,要用更少的代码得到更好的结果。

它出生没多久,10月就要发布1.0版本了。FastAI接下来的课程,基本都会基于这个框架了。由于免费课程用户量很大,Jeff看好框架今后的增长。

FastAI背后的大佬是Jeremy Howard,Kaggle前总裁,也曾经是冠军Kaggler。

以上就是全部参赛选手,Caffe没在里面,因为进化成了Caffe 2,Caffe 2又并进PyTorch了。

640?wx_fmt=jpeg

比赛项目有哪些

招聘需求 (Job Listings)

和机器学习有关的工作岗位,要求用什么框架?这个问题的答案里,TensorFlow的出镜率最高。

这里使用机器学习+框架名 (如machine learning TensorFlow) 来统计的,Jeff发现这样效果最好。

640?wx_fmt=png

所以,找工作还是学TensorFlow吧。

用量 (Usage) :出了美国,Keras是冠军

这里用了KDnuggets 2018年做的问卷调查,是向全球的数据科学家提问:

过去12个月,你用过什么分析、大数据、数据科学以及机器学习软件,来做项目?

答案如下。

640?wx_fmt=png

有些意外的是,Keras的占比超过20%,非常逼近TensorFlow了。

以及,TensorFlow在美国有压倒性优势,但在世界上的其他地方,Keras是最常用的。

谷歌搜索 (Google Search Activity)

观察一个框架有多受欢迎,看搜索量也是个好方法。

这里用的是过去一年的Google Trends。谷歌不提供绝对数据,只有相对数据。

640?wx_fmt=png

百分制,TensorFlow拿到78分,排名第二的Keras只有38分。这是今年9月15日的数据。

不过,第三名PyTorch和第二名Keras相差无几。

其他选手的搜索量,和前三名相比,几乎可以忽略不计。

再看一下搜索值,在两年时间内的变化:

640?wx_fmt=png

前三名在16、17年都发生了迅速的增长,但近几个月来都没有很凶猛的涨势。

另外,季节性变化也是有的,寒暑假搜索量会下降。

文章发表 (Publications) :有惊喜

文章在哪?Medium、Amazon Books、ArXiv……

· Medium

这是发表技术类文章的好去处,也是打破排名规律的地方。

640?wx_fmt=png

Keras超过了TensorFlow,接近5万篇

排名第三的PyTorch,已经不到1万篇

FastAI第四,和第三名分数接近,且远远超过了后面的其他对手。

可能因为Keras和FastAI都是初学者友好的产品,才有了这样的结果。

· 亚马逊图书

虽然TensorFlow又赢回来了,但还是有惊喜。

640?wx_fmt=png

MXNET排到第三名,超过了PyTorch。

大概是因为PyTorch还年轻,而这项指标是越老越吃香的。

· ArXiv

在论文在线存储之地,搜索每个框架。

640?wx_fmt=png

TensorFlow领先不意外,但也领先太多了,是第二名PyTorch的5倍左右。

第二名到第六名相去不远

需要对比一下,在Medium学术型的文章里,Keras排名第一,而在ArXiv上面表现并不突出。

GitHub活跃度

这里,标星 (Star) 、分叉 (Fork) 、关注量 (Watch) 和贡献者 (Contributor) ,是分开统计的。

640?wx_fmt=png

TensorFlow依然优势明显,尤其是前三项

但在贡献者数量上,选手们的差距并没有那么大。尤其是刚刚出生的FastAI,已经积累了不少用户。

各类指标合体

按照饼图中的权重分配,把所有的比赛结果,融为一体。

640?wx_fmt=png

招聘需求KDnuggets问卷这两项加起来,就占了一半比重。

谷歌搜索量发表文章以及GitHub活动一共占一半。

原始数据长这样,观赏的时候,可以锻炼一下脖子:

640?wx_fmt=png

整合之后,就是文章开头看到的样子。

640?wx_fmt=png

学习,学习

PyTorch有朝一日能不能超越TensorFlow?

FastAI的一大批学生,会不会喜欢他们的新框架?

只有时间才知道。

640?wx_fmt=gif

不过,不妨碍各位先选个框架开始学:

Keras适合新手,TensorFlow适合掌握需求,PyTorch灵活性更好。

FastAI 1.0或许可以期待一下?毕竟团队承诺让用户轻松用上最新的深度学习策略 (Strategies) ,并迅速迭代。

加了个油。

加入社群

量子位AI社群28群开始招募啦,欢迎对AI感兴趣的同学,在量子位公众号(QbitAI)对话界面回复关键字“交流群”,获取入群方式;


此外,量子位专业细分群(自动驾驶、CV、NLP、机器学习等)正在招募,面向正在从事相关领域的工程师及研究人员。


进专业群请在量子位公众号(QbitAI)对话界面回复关键字“专业群”,获取入群方式。(专业群审核较严,敬请谅解)

诚挚招聘

量子位正在招募编辑/记者,工作地点在北京中关村。期待有才气、有热情的同学加入我们!相关细节,请在量子位公众号(QbitAI)对话界面,回复“招聘”两个字。

640?wx_fmt=jpeg

量子位 QbitAI · 头条号签约作者

վ'ᴗ' ի 追踪AI技术和产品新动态


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/yH0VLDe8VG8ep9VGe/article/details/82837196

智能推荐

河北省国家电网计算机专业,河北省国家电网计算机类题目库.doc_weixin_39657444的博客-程序员秘密

河北省国家电网计算机类题目库一、单项选择题习题一计算机基础知识1、世界上首次提出存储程序计算机体系结构的是 。冯·诺依曼A、 查尔斯· 巴贝奇 B、 阿伦· 图灵 C、 乔治· 布 尔D、冯·诺依曼2、世界上第一台电子计算机诞生于 1946 年 。A 、1941 年 B 、1946 年 C、1949 年 D、1950 年3、世界上第一台电子数字计算机采用的主要逻辑部件是 电子管。 电子管A、 电子...

【LintCode 简单】1168. 数组评分_麦片加奶不加糖的博客-程序员秘密

1. 描述有一个数组numsnums,以及三个正整数k,u,lk,u,l。对于numsnums的所有长为kk的子段,如果它的总和小于uu,就得11分,如果它的总和大于ll,就扣11分。请求出最终能获得多少分?2. 样例样例输入:nums = [0, 1, 2, 3, 4]k = 2u = 2l = 5样例输出:03. 代码本题如果使用两层循环,会在测试用例中报超时无法通过。考虑使用两个循环,但仅用一层循环完成。class Solution: """

Maven安装与配置_ThinkWon的博客-程序员秘密

Maven安装1. 到Maven官网(http://maven.apache.org)下载软件注意:Maven软件依赖于Java,请先安装与配置好jdk2. 直接解压apache-maven-3.6.0-bin.zip即可Maven目录结构3. 把Maven的bin目录配置到环境变量中新建系统变量变量名:M2_HOME变量值:C:\develop\Maven\apache-...

随便推点

redis的主从复制、高可用、集群_Wang_Yuhan-的博客-程序员秘密

搭建并使用Redis集群搭建集群的第一件事情我们需要一些运行在 集群模式的Redis实例. 这意味这集群并不是由一些普通的Redis实例组成的,集群模式需要通过配置启用,开启集群模式后的Redis实例便可以使用集群特有的命令和特性了.进入一个新目录/usr/local/cluster, 并创建六个以端口号为名字的子目录,在每个目录中运行一个 Redis 实例cd /usr/local/...

选人控件_weixin_33872660的博客-程序员秘密

//基于layui//_userData为可选的总人数,关闭窗口时,在回调函数中参数返回已选择的人员。//入口---调用con_selectUserControl(_userData, function (_selectedUser) {  //todo});//选人控件var con_allSelectUser = [];var ...

@EnableAsync配合@Async标签使用实现异步处理_想睡觉的小码农的博客-程序员秘密

@Async标签一、使用Async标签的使用条件:一般应该使用在类的方法上,如果使用在类上,那么整个类中的方法都是异步的。 调用@Async方法的方法所在的类应该是spring容器管理的bean 应该配合@EnableAsync标签同时使用(下面会说如何使用@EnableAsync标签) 使用Async注解的方法,返回值必须为Void或Futur二、使用注意事项当被标注的方法没有确定返回类型时,@Async会失去作用 当被标注的方法与调用方法在同一个类中的时候,@Async会失去作用

ppt打印一页6张铺满不留白_论文答辩PPT需要注意的十一个细节_weixin_39945789的博客-程序员秘密

点击蓝字关注我们现阶段,毕业生们听到就想结束的对话莫过于是:“毕业论文写完了吗?”“重复率查了吗?”“什么时候答辩?”“答辩PPT做完了吗”……从2019年起,某翟让教育界掀起的一股整治学术不端的热潮后,毕业论文查重,毕业论文降重,毕业答辩这一套毕业过程,也成为大学生,研究生们毕业不可逾越的鬼门关。我猜每年的四五月,毕业季的时候,都会有一批又一批的后浪们,去慰问他老人家吧,小编也恨啊,真...

ABAP 新特性 - CONCATENATE_abap concatenate_王小磊的博客-程序员秘密

OLDDATA(lv_str1) = 'Hello'.DATA(lv_str2) = 'World'.DATA: lv_str TYPE string.CONCATENATE 'MY First String' lv_str1 INTO lv_str2 SEPARATED BY space.CONCATENATE lv_str lv_str2 INTO lv_str SEPARAT...

推荐文章

热门文章

相关标签