Keras作者François Chollet刚刚在Twitter贴出一张图片,是近三个月来arXiv上提到的深度学习开源框架排行:
TensorFlow排名第一,这个或许并不出意外,Keras排名第二,随后是Caffe、PyTorch和Theano,再次是MXNet、Chainer和CNTK。
Chollet在推文中补充,Kears的使用在产业界和整个数据科学圈中最占主流,产业既包括大公司也包括创业公司。不过,在研究社区,Keras的份额要小很多。
这个统计结果是使用Google Search Index得到的。
这个排名让人想起来之前François Chollet晒的另外一次排名(时间范围是2017年4月到7月,综合Github上issue、fork、contributors等数据得到的活跃度),也是TensorFlow和Keras排名第一和第二。
不过,在Github的那次排名,MXNet、PyTorch的名次明显上升。
针对近三个月来arXiv的深度学习框架排名结果,有人评论,他很遗憾Theano排名如此靠后,Theano是他的第一个框架。
深度学习的图景总是在不断变化,Theano是第一个被广泛采用的深度学习框架,由Yoshua Bengio领导的MILA创建和维护。但2017年9月,MILA宣布将在2018年终止Theano的开发和维护。Theano的离开不禁让人感慨,这也是第一个退出舞台的流行框架。
TensorFlow性能并非最优,为何如此受欢迎?粉丝团!
在过去的几年里,出现了不同的开源Python深度学习框架,TensorFlow就属于其中典型,由谷歌开发和支持,自然引发了很大的关注。
但需要指出,根据香港香港浸会大学褚晓文教授团队在2017年推出深度学习工具评测的研究报告《 基准评测 TensorFlow、Caffe、CNTK、MXNet、Torch 在三类流行深度神经网络上的表现(论文)》,TensorFlow的性能在有些时候表现并非最佳:
- 仅用一块GPU,FCN上Caffe、CNTK和Torch比MXNet和TensorFlow表现更好;CNN上MXNet表现出色,尤其是在大型网络时;而Caffe和CNTK在小型CNN上同样表现不俗;对于带LSTM的RNN,CNTK速度最快,比其他工具好上5到10倍。
- 通过将训练数据并行化,这些支持多GPU卡的深度学习工具,都有可观的吞吐量提升,同时收敛速度也提高了。多GPU卡环境下,CNTK平台在FCN和AlexNet上的可扩展性更好,而MXNet和Torch在CNN上相当出色。
这一结果,反而凸显出TensorFlow和谷歌强大的号召力,以及已经形成的生态圈的积极拉动影响。
在2017年初的这份报告中,褚晓文教授指出,硬件和软件同样重要,仅仅有硬件是不够的,没有好的软件,硬件的效能发挥不出来,这也是为什么今天有这么多深度学习软件,它们的性能有如此大的差异。
“Torch是很流行的软件,2002年就有了,那时候还没有深度学习。后来把深度学习做进去了。2014年就是Caffe,微软2015年开源了CNTK,接下来谷歌也开源了他们相应的开发平台。第三行是它的粉丝数量,目前(2017年9月)TensorFlow的粉丝团是最庞大的,有6万多个关注,相对来讲,CNTK、Caffe加起来还没有TensorFlow有影响力。最底下是开发平台的维护情况,随着硬件的提升,新的算法的提出,每个软件都是要不断的更新换代的,TensorFlow的更新是非常频繁的,基本上每一两个月就会有一个新的更新,代表着他们对软件平台的投入。”
而Keras,则是谷歌在2017年宣布,将Keras作为TensorFlow的高级API。这意味着Keras被包含在TensorFlow版本中及时更新。除了TensorFlow,Keras也可以使用Theano或者CNTK作为后端。
其他框架和公司合纵连横——中国框架何时才能上榜?
大家可以点击上面的链接仔细看TensorFlow、Caffe、PyTorch、MXNet等框架在各种应用场景下的性能。我们性能更好,但为什么用的人还不是最多?为了解决这个问题,开放神经网络交换(ONNX)格式的发布于2017年9月横空出世。
ONNX最初由微软和Facebook联合发布,后来亚马逊也加入进来,并在12月发布了V1版本。ONNX是一个表示深度学习模型的开放格式。它使用户可以更轻松地在不同框架之间转移模型。例如,它允许用户构建一个PyTorch模型,然后使用MXNet运行该模型来进行推理。
开放神经网络交换(ONNX)的Github页面
ONNX由微软、亚马逊和Facebook等公司共同发起,宣布支持ONNX的公司还有AMD、ARM、华为、 IBM、英特尔、Qualcomm等。谷歌不在这个阵营中并不令人惊讶。ONNX从一开始就支持Caffe2,Microsoft Cognitive Toolkit,MXNet和PyTorch,但与其他开源项目一样,社区也已经为TensorFlow添加了一个转换器。
原文发布时间为:2018-03-9
本文作者:文强
本文来自云栖社区合作伙伴新智元,了解相关信息可以关注“AI_era”微信公众号