本文为前任Foursquare数据科学家Michael Li发表的文章,文章对 23 个深度学习库进行了排名,排名基于三个重要指标:GitHub、Stack Overflow 以及谷歌搜索结果。
排名
下面是23种用于数据科学的开源深度学习库的排名,按照Github上的活动、Stack Overflow上的活动以及谷歌搜索结果来衡量。该表显示了标准化分数,1这个值表示高于平均值(平均值=0)一个标准偏差。比如说,Caffe高于Github活动方面的平均值一个标准偏差,而deeplearning4j接近平均值。
结果和讨论
排名基于权重一样大小的三个指标:Github(星标和分支)、Stack Overflow(标签和问题)以及谷歌结果(总体增长率和季度增长率)。
这些是使用可用的API分析而得的。制作一个全面的深度学习工具包列表很棘手。最后,我们列出了有代表性的五个不同的列表(参阅下面介绍的方法,可了解详细信息)。计算每个度量指标的标准化分数后,我们就能看到哪些软件包在每个类别中脱颖而出。
完整排名(http://suo.im/1bVLA9)
原始数据在这里(http://suo.im/iHQP7)
TensorFlow一路领跑
在所有衡量指标中,TensorFlow比平均值高出至少两个标准偏差。相比第二大流行框架:Caffe,TensorFlow的Github分支数量几乎是其三倍,Stack Overflow问题更是其六倍以上。
TensorFlow最初由谷歌Brain团队于2015年开源,发展势头已超过历史更悠久的库,比如Theano(第4位)和Torch(第8位),跃居我们榜单的首位。
虽然TensorFlow附带在C++引擎上运行的Python API,但本榜单上的几种库可以使用TensorFlow作为后端,提供各自的接口。这些库包括Keras(第2位,很快将成为核心TensorFlow的一部分)和Sonnet(第6位)。
TensorFlow之所以人气这么高,可能是由于它结合了通用深度学习框架、灵活的接口、外观整洁的计算图形可视化以及谷歌庞大的开发者和社区资源。
Caffe尚未被Caffe2所取代
Caffe在本榜单上排名第三,Github上的活动比其所有竞争对手(TensorFlow除外)都要多。Caffe历来被认为比Tensorflow更专门化,当初专注于图像处理、对象识别和预训练的卷积神经网络。
Facebook于2017年4月发布了Caffe2(第11名),Caffe2已经跻身于深度学习库的上半部分。Caffe2是一种更轻量级、模块化、可扩展的Caffe,它包括循环神经网络。
Caffe和Caffe2是独立的代码库,所以数据科学家可以继续使用原来的Caffe。然而,一些迁移工具(比如Caffe Translator)为使用Caffe2来驱动现有的Caffe模型提供了一种手段。
Keras是最流行的深度学习框架
Keras(第2位)是排名最高的非框架库。Keras可以用作TensorFlow(第1位)、Theano(第4位)、MXNet(第7位)、CNTK(第9位)或deeplearning4j(第14位)的前端。
Keras在所有三个衡量指标方面的表现均胜过平均值。Keras之所以人气很旺,可能归功于其简单性和易用性。Keras允许用户快速建立原型,代价是直接使用框架所带来的灵活性和控制性方面欠缺一点。
Keras颇受对数据集使用深度学习的数据科学家的青睐。由于R Studio最近发布了使用R的面向Keras的接口,Keras的发展和人气指数不断提升。
Theano依然名列前茅
在众多新的深度学习框架中,Theano(第4位)是本榜单上历史最悠久的库。Theano率先使用了计算图,在整个深度学习和机器学习研究界当中仍很受欢迎。
Theano实际上就是面向Python的数值计算库,但可以与像Lasagne(第15位)这样的高级深度学习封装库一起使用。
谷歌支持TensorFlow(第1位)和Keras(第2位),Facebook支持PyTorch(第5位)和Caffe2(第11位),而MXNet(第7位)是亚马逊网络服务(AWS)的官方深度学习框架,微软设计并维护CNTK(第9位),虽然没有得到哪家技术行业巨头的官方支持,但Theano依然颇受欢迎。
Sonnet是上升最快的库
2017年年初,谷歌的DeepMind公开发布了Sonnet(第6位)的代码,这是一种以TensorFlow为基础的面向对象的高级库。这个季度相比上个季度,Sonnet的谷歌搜索结果中返回的页面数量增加了272%,这是我们排名的所有库中增幅最大的。
虽然谷歌在2014年收购了DeepMind这家英国人工智能公司,但DeepMind和谷歌Brain仍拥有基本上独立的团队。DeepMind专注于强人工智能,Sonnet可以帮助用户在特定的AI想法和研究的基础上构建神经网络。
Python是深度学习接口的首选语言
PyTorch(第5位)是其单一接口使用Python的一种框架,它是本榜单上发展速度第二快的库。与上季度相比,PyTorch的谷歌搜索结果多了236%。
在我们排名的23种开源深度学习框架和封装库中,只有三种没有使用Python的接口:Dlib(第10位)、MatConvNet(第20位)和OpenNN(第23位)。C++接口和R接口分别用于23种库中的7种库和6种库。虽然数据科学界在使用Python方面几乎趋于一致,但是深度学习库方面还是有许多选择。
局限
与任何分析一样,我们一路上做出了决定。所有源代码和数据都在我们的Github页面上。深度学习库的完整列表来自几个来源。
当然,一些历史更悠久的库会有更高的指标,因而排名更高。唯一考虑到这一点的指标是谷歌搜索季度增长率。
数据带来了几个难题:
Neural Designer和Wolfram Mathematica是专有的,已被剔除
cntk又叫微软认知工具包,但是我们只使用了原来的ctnk名字
neon改成了nervana neon
paddle改成了paddlepaddle
一些库显然是其他库的衍生版,比如Caffe和Caffe2。如果这些库有独特的github代码库,我们决定将它们分开来对待。
方法
所有源代码和数据都放在我们的Github页面(http://suo.im/28d7ar)上。
我们先从五个不同的来源,制作了23种开源深度学习库列表,然后为所有库收集了指标,以得出排名。Github数据基于星标和分支,Stack Overflow数据基于含有软件包名称的标签和问题,谷歌结果基于过去五年的谷歌搜索结果总数和过去三个月较之前三个月计算出来的季度结果增长率。
其他一些注意事项:
几个库是常用词(caffe、chainer和lasagne),因此用来确定谷歌搜索结果数量的搜索词包括库名和“deep learning”这个术语
任何缺少的Stack Overflow计数一律转换为零计数
计数标准化,均值为0,偏差为1,然后求平均值,以获得Github和Stack Overflow分数,最后结合搜索结果得出总分
进行一番手动检查,确认Github的代码库位置
★推荐阅读★
华尔街日报专访李彦宏
用大数据和机器学习揭示十二星座(下)
谷歌中国首席工程师详解TensorFlow
台大陈蕴侬、李宏毅“应用深度学习”课程(国语)
这些公司用AI影响1400万教师和1.88亿学生
世界最大色情网站Pornhub使用AI识别AV
DeepMind发布千年以来最强围棋选手
MIT女教授使用AI检测早期乳腺癌准确率97%
拍人更美!谷歌工程师揭秘Pixel 2手机黑科技
华为新品手机发布会全程回顾
超级计算机图像识别率达人类医生水平
长期招聘志愿者
加入「AI从业者社群」请备注个人信息
添加小鸡微信 liulailiuwang