28款GitHub最流行的开源机器学习项目(一):TensorFlow排榜首

  • 时间:
  • 浏览:0
  • 来源:大发5分11选5_大发5分11选5官网

编译自:https://github.com/showcases/machine-learning

译者:刘崇鑫 校对:王殿进

Pattern是Python的有另二个Web挖掘模块。拥有以下工具:

Brain是 JavaScript 中的 神经网络库。以下例子说明使用Brain来近似 XOR 功能:

开发语言:C++

CNTK(Computational Network Toolkit )是有另二个统一的角度学习工具包,该工具包通过有另二个有向图将神经网络描述为一系列计算步骤。在有向图中,叶节点表示输入值或网络参数,某些节点表示该节点输入之上的矩阵运算。

CNTK 使得实现和组合如前馈型神经网络DNN、卷积神经网络(CNN)和循环神经网络(RNNs/LSTMs)等流行模式变得非常容易。一块儿它实现了跨多GPU 和服务器自动分化和并行化的随机梯度下降(SGD,误差反向传播)学习。

下图将CNTK的处理效率单位(每秒处理的帧数)和某些二个知名的工具包做了比较了。配置采用的是四层全连接的神经网络(参见基准测试脚本)和有另二个大小是8192 的高效mini batch。在相同的硬件和相应的最新公共软件版本(2015.12.3前的版本)的基础上得到如下结果:

开发语言:Ruby

Scikit-Learn的基本功能主要被分为二个帕累托图:分类、回归、聚类、数据降维、模型选用、数据预处理,具体可不还还能否 参考官方网站上的文档。经过测试,Scikit-Learn可在 Python 2.6、Python 2.7 和 Python 3.5上运行。除此之外,它也应该可在Python 3.3和Python 3.4上运行。

注:Scikit-Learn之前 被称为Scikits.Learn。

许可协议:MIT License

Caffe 是由神经网络中的表达式、效率单位、及模块化产生的角度学习框架。之前 它通过伯克利视觉与学习中心((BVLC)和社区参与者的贡献,得以发展形成了以有另二个伯克利主导,否则 加之Github和Caffe-users邮件所组成的有另二个比较松散和自由的社区。

Caffe是有另二个基于C++/CUDA架构框架,开发者可不还还能否利用它自由的组织网络,目前支持卷积神经网络和全连接神经网络(人工神经网络)。在Linux上,C++可不还还能否 通过命令行来操作接口,对于MATLAB、Python全是 专门的接口,运算上支持CPU和GPU直接无缝切换。

目前Caffe应用实践主要有数据分派、设计网络特征、训练结果、基于现有训练模型,使用Caffe直接识别。

GitHub项目地址:

现在机器学习逐渐成为行业热门,经过二十几年的发展,机器学习目前全是 了十分广泛的应用,如:数据挖掘、计算机视觉、自然语言处理、生物特征识别、搜索引擎、医学诊断、DNA序列测序、语音和手写识别、战略游戏和机器人等方面。

云栖社区特意翻译分派了目前GitHub上最受欢迎的28款开源的机器学习项目,以供开发者参考使用。

GitHub项目地址:

NuPIC 有个人的独特之处。某些机器学习算法无法适应新模式,而NuPIC的运作接近于人脑,当模式变化的之前 ,它会忘掉旧模式,记忆新模式。

NuPIC是有另二个实现了HTM学习算法的机器智能平台。HTM是有另二个关于新(大脑)皮质(Neocortex)的完整篇 人工智能算法。HTM的核心是基于时间的连续学习算法,该算法可不还还能否 存储和调用时间和空间某种模式。NuPIC可不还还能否 适用于处理各类现象,尤其是异常检测和流数据源预测方面。

NuPIC Binaries文件目前可用于:

MXNet是有另二个兼具效率单位和灵活性的角度学习框架。它允许使用者将符号编程和命令式编程相结合,以追求效率单位和中产力的最大化。其核心是动态依赖调度多多程序运行 ,该多多程序运行 可不还还能否 动态自动进行并行化符号和命令的操作。其中部署的图形优化层使得符号操作加快效率和内存利用率更高。该库轻量且便携带,否则 可扩展到多个GPU和多台主机上。

主要特点:

GitHub项目地址:

开发语言:Python

GitHub项目地址:

GitHub项目地址:

Theano是有另二个Python库,它允许使用者有效地定义、优化和评估涉及多维数组的数学表达式,一块儿支持GPUs和高效符号分化操作。Theano具有以下特点:

Scikit-Learn是用于机器学习的Python 模块,它建立在SciPy之上。该项目由David Cournapeau 于30007年创立,当时项目名为Google Summer of Code,自此之前 ,众多志愿者都为此做出了贡献。

主要特点:

当 brain 用于浏览器,下载最新的 brain.js 文件。训练计算代价比较昂贵,什么都有有应该离线训练网络(肯能在 Worker 上),并使用 toFunction() 肯能 toJSON()选项,以便将预训练网络插入到网站中。

Vowpal Wabbit是有另二个机器学习系统,该系统推动了如在线、散列、Allreduce、Learning2search、等方面机器学习前沿技术的发展。 其训练效率单位加快效率,在20亿条训练样本,每个训练样本至少3000个非零特征的情况报告下:肯能特征的总位数为一万时,训练时间为20分钟;特征总位数为30000万时,训练时间为有另二个小时。Vowpal Wabbit支持分类、 回归、矩阵分解和LDA。

当在Hadoop上运行Vowpal Wabbit时,有以下优化机制:

开发语言:Javascript

开源许可:Apache-2.0 license

开发语言:Python

许可协议:3-Clause BSD license

开发语言:Python

许可协议:BSD license

开发语言:Python

许可协议: BSD 2-Clause license

GitHub项目地址:

GitHub项目地址:

许可协议:Apache License 2.0

ConvNetJS是利用Javascript实现的神经网络,一块儿还具有非常不错的基于浏览器的Demo。它最重要的用途是帮助角度学习初学者加快效率、更直观的理解算法。

它目前支持:

开发语言:C++

Keras目前支持 Python 2.7-3.5。

自30007年起,Theano总是致力于大型密集型科学计算研究,但它目前也很被广泛应用在课堂之上( 如Montreal大学的角度学习/机器学习课程)。

+Comparison of SGD/Adagrad/Adadelta on MNIST

PredictionIO 基于 REST API(应用多多程序运行 接口)标准,不过它还中含 Ruby、Python、Scala、Java 等编程语言的 SDK(软件开发工具包)。其开发语言是Scala语言,数据库方面使用的是MongoDB数据库,计算系统采用Hadoop系统架构。

许可协议: Apache License 2.0

PredictionIO 是面向开发人员和数据科学家的开源机器学习服务器。它支持事件分派、算法调度、评估,以及经由REST APIs的预测结果查询。使用者可不还还能否 通过PredictionIO做某些预测,比如个性化推荐、发现内容等。PredictionIO 提供20个预设算法,开发者可不还还能否 直接将它们运行于个人的数据上。几乎任何应用与PredictionIO集成都可不还还能否 变得更“聪明”。其主要特点如下所示:

开发语言:Scala

TensorFlow 是谷歌发布的第二代机器学习系统。据谷歌宣称,在帕累托图基准测试中,TensorFlow的处理效率单位比第一代的DistBelief加快了2倍之多。

具体的讲,TensorFlow是有另二个利用数据流图(Data Flow Graphs)进行数值计算的开源软件库:图中的节点( Nodes)代表数学运算操作,一块儿图中的边(Edges)表示节点之间相互流通的多维数组,即张量(Tensors)。某种灵活的架构可不还还能否 让使用者在繁复的将计算部署在台式机、服务器肯能移动设备的有另二个或多个CPU上,否则 时会重写代码;一块儿任一基于梯度的机器学习算法均可够借鉴TensorFlow的自动分化(Auto-differentiation);此外通过灵活的Python接口,要在TensorFlow中表达想法也变得更为简单。

TensorFlow最初由Google Brain小组(该小组隶属于Google's Machine Intelligence研究机构)的研究员和工程师开发出来的,开发目的是用于进行机器学习和角度神经网络的研究。但该系统的通用性足以使其广泛用于某些计算领域。

目前Google 结构已在少许使用 AI 技术,包括 Google App 的语音识别、Gmail 的自动回复功能、Google Photos 的图片搜索等全是 使用 TensorFlow 。

GitHub项目地址:

开发语言:Python

其文档完善,目前拥有3000多个案例和33000多个单元测试。 Pattern目前只支持Python 2.5+(尚不支持Python 3),该模块除了在Pattern.vector模块中使用LSA外什么什么都没人某些任何结构要求,否则 只需安装 NumPy (仅在Mac OS X上默认安装)。

var output = net.run([1, 0]); // [0.987]

GitHub项目地址:

开发语言:Jupyter Notebook

开发语言:C++

GitHub项目地址:

GitHub项目地址:

CNTK自2015年四月就已开源。

通过设计了有另二个游戏使得Ruby语言和人工智能学习更加有乐趣和互动起来。

使用者扮演了有另二个勇士通过爬上一座高塔,到达顶层获取珍贵的红宝石(Ruby)。在每一层,需要写有另二个Ruby脚本指导战士打败敌人、营救俘虏、到达楼梯。使用者对每一层全是 某些认识,但有你永远都告诉我每层具体会所处哪此情况报告。你需要给战士足够的人工智能,以便让其自行寻找应对的妙招。

勇士的动作相关API:

GitHub项目地址:

开发语言:JavaScript

当 brain 用于节点中,可使用npm安装:

GitHub项目地址:

开发语言:C++

MXNet不仅仅是有另二个角度学习项目,它更是有另二个建立角度学习系统的蓝图、指导方针以及黑客们对角度学习系统独特见解的结合体。

Keras是极其精简并角度模块化的神经网络库,在TensorFlow 或 Theano 可不里还还能否运行,是有另二个角度模块化的神经网络库,支持GPU和CPU运算。Keras可不还还能否 说是Python版的Torch7,对于快速构建CNN模型非常方便,一块儿也中含了某些最新文献的算法,比如Batch Noramlize,文档教程也很全,在官网上作者全是 直接给例子浅显易懂。Keras也支持保存训练好的参数,否则 加载肯能训练好的参数,进行继续训练。

Keras侧重于开发快速实验,用肯能至少延迟实现从理念到结果的转变,即为做好一项研究的关键。

当需要如下要求的角度学习的库时,就可不还还能否 考虑使用Keras:

GitHub项目地址: