10大热门人工智能开源工具(框架)

【方向】 2018-06-15

python 深度学习 分布式 架构 算法 java 函数 Apache 人工智能 spark API GPU github 数组 神经网络

下面是我们今天要讲的10个热门的人工智能开源工具/框架。

1.TensorFlow

295775e39f55d9e6e7993cfa1116b8519d125e85 

TensorFlow™是一个开源软件库,最初由Google Brain Team的研究人员和工程师开发。TensorFlow使用数据流图进行数值计算。图中的节点表示数学运算,边表示它们之间通信的多维数据数组(张量)。其架构灵活,你可以使用单个API将计算部署到桌面、服务器或移动设备中的一个或多个CPUGPU

TensorFlow提供了多种API。最低级别的API——TensorFlow Core——提供了完整的编程控制。高级API则建立在TensorFlow Core的顶部。这些更高级别的API通常比TensorFlow Core更容易学习和使用。此外,更高级别的API使得重复性的任务在不同的用户之间变得更容易、更一致。一个高级API就像tf.estimator,可以帮助您管理数据集评估器训练和推理。

TensorFlow中的数据中心单位是张量。一个张量由一组形成任意数量维数组的原始值组成。张量的阶就是它的维数。

一些使用TensorflowGoogle应用有:

1.RankBrainwww.google.com上大规模部署用于搜索排名的深度神经网络。

2.Inception图像分类模型:基准模型和对高度精确的计算机视觉模型的后续研究,它是在获得2014Imagenet图像分类挑战赛的模型基础之上进行构建的。

3.SmartReply:可自动生成电子邮件响应的Deep LSTM模型

4.Massively Multitask Networks for Drug DiscoveryGoogle与斯坦福大学合作的识别有效候选药的的深度神经网络模型。

5.用于OCR的设备级计算机视觉:基于设备级的计算机视觉模型实现光学字符识别,进行实时翻译

资源

Tensorflow

GitHub

入门指南

2.Apache SystemML

利用大数据进行机器学习的最佳开源工具。

aacef42d14a2947b75de69b37ed6af605b71db25 

SystemML是由IBM创建的机器学习技术,是Apache中的顶级项目之一,它是一个灵活、可扩展的机器学习系统。SystemML的重要特点如下:

1.使用类R和类Python语言定制算法。

2.有多种执行模式,包括Spark MLContextSpark BatchHadoop BatchStandaloneJMLC(Java机器学习连接器)

3.基于数据和聚类特性的自动优化,保证了算法的效率和可扩展性。

4.SystemML视为机器学习的结构化查询语言SQLSystemML的最新版本(1.0.0)支持:Java 8+Scala 2.11+Python 2.7/3.5+Hadoop 2.6+以及Spark 2.1+

5.可在Apache Spark上运行,在Apache Spark上,SystemML通过逐行查看代码,确保代码是否能够在Apache Spark聚类上运行。

未来对SystemML的开发包括:使用GPU进行额外的深度学习,例如导入和运行神经网络架构以及用于训练的预训练模型。

SystemMLJava机器学习连接器(JMLC)

Java机器学习连接器(JMLCAPI是一种编程接口,它在嵌入式时与SystemML进行交互。JMLC的主要目的是作为一个评分API,其中,评分函数是用SystemMLDML语言表示的。除了评分外,嵌入式SystemML还可在一台机器上运行的更大的应用程序的上下文中执行聚类等无监督学习任务。

资源

SystemML

GitHub

3.Caffe

Caffe是一种清晰而高效的深度学习框架

68893190bbb378713d2c76d6f350146562dbf334 

Caffe最初由杨庆佳在加州大学伯克利分校读博期间发起,后来由伯克利AI研究公司(BAIR)和社区贡献者联合开发。它主要专注于用于计算机视觉应用的卷积神经网络。对于计算机视觉相关的任务来说,Caffe是一个不错且较为流行的选择,您可以在Caffe Model Zoo上注册,下载很多已经成功建模的模型,直接用于开发。

优点

1.Expressive架构鼓励实用和创新。用配置定义的模型和优化,而不需要硬编码。通过设置单个标志在GPU机器上进行训练,然后部署聚类或移动设备,实现CPUGPU之间的切换。

2.可扩展代码更有助于开发。在Caffe开发好的的第一年,就有1,000多个开发者分享出去,对其做了重大贡献

3.Caffe的高速使理论实验和实际应用得到了完美的结合。Caffe使用单个NVIDIA K40 GPU每天可处理超过6000万张图像。

4.社区:Caffe已经为视觉、语音和多媒体领域的学术研究项目,启动原型,甚至大规模工业应用提供支持。

资源

Caffe网站

GitHub

Caffe用户群

框架应用之速成课程

Caffe Model Zoo

4.Apache Mahout

Apache Mahout是一个分布式线性代数框架,提供了一些经典的机器学习算法。

dcd72d325af271dfc665e9815d5ed3c688571c16 

Mahout旨在帮助开发人员方便快捷的实现自己的算法。Apache Spark是一种即拿即用的分布式后台,或者也可以将其扩展到其他分布式后台。其特点如下:

1.数学表达Scala DSL

2.支持多种分布式后端(包括Apache Spark

3.包含用于CPU / GPU / CUDA加速的模块化本地求解器

4.Apache Mahout应用的领域包括:协作过滤(CF),聚类和分类

功能

1.Taste CF.Taste Sean Owen SourceForge 上发起的一个针对协同过滤(CF)的开源项目,并在 2008 年被赠予 Mahout

2.支持 Map-Reduce 的集群实现包括 :k-Means、模糊 k-MeansCanopyDirichlet Mean-Shift算法等。

3.分布式朴素贝叶斯和互补朴素贝叶斯的分类实现。

4.用于进化编程的分布式适应度函数。

5.矩阵和矢量库。

资源

Mahout主页

GitHub

Mahout介绍-Grant Ingersoll

5.OpenNN 

OpenNN是一个用c++编写的开源类库,它实现了神经网络建模

Opennn (开放神经网络图书馆)以前被称为Flood,它R. Lopez2008年泰罗尼亚技术大学的博士论文《在工程变分问题的神经网络》为基础开发的

d27a9a188301c94f53d655db8af4f4cf3368de50 

Opennn使用一组函数实现了数据挖掘,并且,可以使用一个API将这些函数嵌入到其他软件工具中,使软件工具和预测分析任务之间进行交互。Opennn的主要优点就是它的高性能。由于采用c++开发,因此它有更好的内存管理和更高的处理速度,并利用 OpenMP GPU 加速度(CUDA)实现 CPU 并行化。

Opennn包中含有单元测试、许多示例和大量文档。为神经网络算法和应用的研究开发提供了一个有效的框架。神经网络设计是一个基于OpenNN的专业预测分析工具,这就意味着神经网络设计的神经引擎是基于 OpenNN 建立的。

OpenNN旨在从数据集和数学模型中进行学习。

数据集

特征回归

模式识别

时间序列预测

数学模型

最佳控制

最佳形状设计

数据集和数学模型

反向问题

资源

OpenNN网站

OpenNN Artelnics GitHub

神经网络设计(Neural Designer

6.Torch

Torch是一个开源机器学习库、科学计算框架和基于Lua编程语言的脚本语言。

8d95c30df68edc27a95aa3030a8e39ddc9c8aa4e

功能

1.一个强大的 n 维数组

2.有很多索引、切片、转换的程序。

3.使用 LuaJIT编写简单的C扩展。

4.线性代数程序

5.神经网络和基于能量的模型

6.数字优化程序

7.GPU支持,更加快速和高效

8.可嵌入,带有 iOS Android 的后台端口

TorchFacebook 人工智能研究小组、 IBMYandex Idiap 研究所使用。现在,它已经扩展到 Android iOS系统上,研究人员使用Torch来构建硬件实现数据流。

Pytorch是一个Python的开源机器学习库,用于自然语言处理等应用,主要由 Facebook 的人工智能研究小组开发,Uber 的概率编程软件"Pyro"就是在Pytorch上创建的。

资源

Torch

GitHub

7.Neuroph

Neuroph是一 Java 编写的面向对象的神经网络框架。

d2a9a6d11a241d2c5cf9a3ab43c2a19c13534cce 

Neuroph可用于在Java程序中创建和训练神经网络,它提供了Java类库以及用于创建和训练神经网络的GUI工具easyNeuronsNeuroph是一个轻量级的Java神经网络框架,用于开发常见的神经网络架构。它包含一个设计良好的开源Java库,其中包含少量与基本神经网络概念对应的基础类。它还有一个很好的GUI神经网络编辑器来快速创建Java神经网络组件。目前,已经在Apache 2.0许可下作为开源发布出来。

Neuroph的核心类与人工神经元、神经元层、神经元连接、权重、传递函数、输入函数和学习规则等基本神经网络概念对应。Neuroph支持常见的神经网络体系结构,例如具有反向传播,KohonenHopfield网络的多层感知器。所有的这些类都可以进行扩展和定制,以自定义创建神经网络和学习规则。Neuroph同时也支持图像识别。

资源

Neuroph

GitHub

8.Deeplearning4j

Deeplearning4j是第一个为JavaScala编写的商业级开源分布式深度学习库。

Deeplearning4j旨在成为顶尖的即拿即用设备,而不是只是做一些配置,这使得非专业人员也能够快速的构建模型。

DL4J可以通过Keras(包括TensorFlowCaffeTheano)从大多数主要框架中导入神经网络模型,它为数据科学家、数据工程师和DevOps提供了跨团队工具包,弥合了Python生态系统和JVM之间的障碍。现在,KerasDeeplearning4jPython API

功能

1.分布式 cpu gpu

2.Java, Scala and Python APIs

3.适用于微服务体系结构

4.通过降低迭代次数进行并行训练

5.Hadoop 上可伸缩

6.AWS扩展上提供Gpu 支持

1.Deeplearning4J: 神经网络平台

2.ND4J: Numpy for the JVM

3.DataVec:机器学习ETL操作的工具

4.JavaCPPJavaC ++之间的桥梁

5.Arbiter:机器学习算法的评估工具

6.RL4JJVM的深度增强学习

9.Mycroft

Mycroft声称是世界上第一个开源助手,适用于从科学项目到企业软件应用程序的任何事情。

 1ed07a31ab4aaf7fe89d6666478a0518afb1f906

Mycroft可以在任何地方运行——台式计算机上、在汽车内或在树莓派上运行。这是可以自由混合、自由扩展和改进的开源软件。

10.OpenCog

OpenCog是一个旨在构建开源人工智能框架的项目。

c4891a01317126d962c96d7701bab91a6fbac117 

OpenCog是认知算法的多元化组合,每种组合都体现了它们的创新之处。但是,认真遵守认知协同原则才是OpenCog整体架构强大的原因。OpenCog最初是基于2008“Novamente Cognition Engine”NCE)发布的源代码。

1.一个图表数据库,它包含术语、原子公式、句子和关系作为超图。

2.一个模理论解算器,作为通用图形查询引擎的一部分,用于执行图和超图模式匹配。

3.一种称为元优化语义进化搜索的概率遗传程序(MOSES),最初由在Google工作的Moshe Looks开发。

4.有一个基于 OpenPsi Unity 的虚拟世界中的交互学习应用体系。

5.有一个由Link GrammarRelEx组成的自然语言输入系统,它们都采用类AtomSpace来表示语义和句法的关系。

6.有一个称为SegSim的自然语言生成系统,它实现NLGenNLGen2

7.Psi 理论的实现,用于处理情绪状态、驱动和冲动,称为 OpenPsi

资源

OpenCog

GitHub

OpenCog Wiki

  数十款阿里云产品限时折扣中,赶紧点击领劵开始云上实践吧!

以上为译文。

本文由北邮@爱可可-爱生活 老师推荐,阿里云云栖社区组织翻译。

文章原标题《10-opensource-toolsframeworks-for-artificial-intel》,译者:Mags,审校:袁虎。

文章为简译,更为详细的内容,请查看原文

登录 后评论
下一篇
云攻略小攻
2341人浏览
2019-10-21
相关推荐
0
0
0
2328