当前位置: 首页 > 科技观察

23个流行的深度学习库排名

时间:2023-03-18 00:44:38 科技观察

基于Github和StackOverflow上的活动以及谷歌搜索结果,DataIncubator最近对23个流行的深度学习库进行了排名。下表显示了标准化分数,其中值1表示高于平均值的一个标准差(平均值为0)。例如,Caffe在Github中的活跃度高于平均水平一个标准差,而deeplearning4j则接近平均水平。方法见文末。结果和讨论该排名基于三个同等重要的部分:Github(星标和叉子)、StackOverflow(标签和问题)以及Google搜索结果(总和和季度增长率)。这3个部分是通过可用的API获得的。想出一个全面的深度学习工具包列表并不容易,因此在***我们选择了五个我们认为具有代表性的不同列表(详情请参见下面的方法)。计算每个指标的归一化分数可以让我们看到哪些包在每个类别中脱颖而出。完整排名在这里,原始数据在这里。TensorFlow在最活跃的社区中占据主导地位TensorFlow在所有计算指标上与平均值至少有两个标准差。与第二流行的框架Caffe相比,TensorFlow在Github上的分叉数量几乎是其三倍,在StackOverflow上的提问总数是其六倍多。TensorFlow于2015年由GoogleBrain团队首次开放,现已超越Theano(4)和Torch(8)等众多高级库,成为我们的榜首。虽然TensorFlow与在C++引擎上运行的PythonAPI一起分发,但表中的几个库可以使用TensorFlow作为后端并提供自己的接口。这些库包括Keras(2),并将很快成为TensorFlow和Sonnet(6)的核心部分。TensorFlow的流行可能是其通用的深度学习框架、灵活的界面、好看的计算图可视化以及谷歌重要的开发者和社区资源的结果。Caffe尚未被Caffe2取代Caffe在我们的列表中排名第三,除了TensorFlow之外,Caffe在Github上的活跃度超过任何其他竞争对手。Caffe传统上被认为比Tensorflow更专业,专注于图像处理、对象识别和预训练卷积神经网络。Facebook于2017年4月发布了Caffe2(11),它已经在深度学习库中处于前半部分。Caffe2是Caffe的更轻量级、模块化和可扩展版本,包括递归神经网络。Caffe和Caffe2是独立的存储库(repos),因此数据科学家可以继续使用原来的Caffe。但是,CaffeTranslator等迁移工具提供了一种使用Caffe2驱动现有Caffe模型的方法。Keras是排名第一的深度学习前端库Keras(2)是排名第一的非框架库。Keras可用作TensorFlow(1)、Theano(4)、MXNet(7)、CNTK(9)、deeplearning4j(14)的前端。在所有三个指标上,Keras的表现均优于平均水平。Keras的流行可能是由于其简单易用。Keras允许快速制作原型,但代价是牺牲了一些直接从框架运行的灵活性和控制力。在对数据集进行深度学习相关实验时,Keras受到数据科学家的青睐。随着RStudio最近发布的Keras接口,Keras的发展和流行仍在继续。即使没有强大的支持,Theano仍保持领先地位在新的深度学习框架的海洋中,Theano(4)是我们排名中最古老的库。Theano率先使用计算图,并且在深度学习和机器学习在研究界司空见惯的时候仍然很受欢迎。Theano本质上是一个用于Python的数值计算库,但可以与像Lasagne(15)这样的高级深度学习库一起使用。Google支持TensorFlow(1)和Keras(2),Facebook支持PyTorch(5)和Caffe2(11),MXNet(7)是AmazonWebServices的官方深度学习框架,Microsoft设计并维护了CNTK(9),Theano没有行业巨头的正式支持,它仍然很受欢迎。Sonnet是增长最快的库2017年初,谷歌的DeepMind公开发布了Sonnet(6)的代码,这是一个基于TensorFlow的高级面向对象库。Sonnet发现Google搜索结果返回页面比上个季度增加了272%,是我们列表中所有图书馆中最高的。尽管谷歌在2014年收购了英国人工智能公司DeepMind,但DeepMind和谷歌大脑在很大程度上仍然是独立的团队。DeepMind专注于通用人工智能,而Sonnet可以帮助用户针对他们特定的AI想法和研究做顶层设计。Python是深度学习的接口语言PyTorch(5)是我们表中增长第二快的库,框架的唯一接口是Python。与上一季度相比,PyTorch的谷歌搜索结果增长了236%。在我们排名的23个开源深度学习框架和包装器中,只有三个没有Python接口:Dlib(10)、MatConvNet(20)和OpenNN(23)。在23个库中,分别只有7个和6个用于C++和R接口。虽然数据科学界在使用Python方面达成了某种程度的共识,但深度学习库有很多选择。局限性当然,有些图书馆的排名会更高,因为它们存在的时间更长,而且统计数据更高。唯一考虑到这一点的指标是谷歌搜索季度增长率。数据呈现中遇到的一些困难:Neuraldesign和wolframmath是专有的,所以去掉了cntk又名“MicrosoftCognitiveToolkit”,但是我们只用了ctnk名字neon变成了nervananeonpaddle被去掉了改成了paddlepaddle一些库显然是其他库的衍生库,例如Caffe和Caffe2。如果这些存储库具有单独/独立的Github存储库,我们将单独处理这些存储库。方法所有源代码和数据都在我们的Github页面上。我们首先生成了来自五个不同来源的23个开源深度学习库的列表,然后收集了所有这些库的指标以获得排名。Github的数据是根据star和fork的数量,StackOverflow的数据包括包名的标签和问题,Google搜索结果是根据过去五年Google搜索结果的总数,计算过去的结果三个月与前三个月相比。季度增长率。Somenotes:几个库是常用词汇(caffe,chainer,lasagne),所以用来决定谷歌搜索结果数量的搜索词包括库的名称和词即“深度学习”。任何不可用的StackOverflow计数都将转换为零计数。计数被归一化为均值0和偏差1,然后平均得到Github和StackOverflow分数,并结合Serch结果得到总分。进行了一些手动检查以确认Github存储库位置。