下面是我们今天要讲的10
个热门的人工智能开源工具
/
框架。
1.TensorFlow
TensorFlow™ 是一个开源软件库,最初由 Google Brain Team 的研究人员和工程师开发。 TensorFlow 使用数据流图进行数值计算。图中的节点表示数学运算,边表示它们之间通信的多维数据数组(张量)。其架构灵活,你可以使用单个 API 将计算部署到桌面、服务器或移动设备中的一个或多个 CPU 或 GPU 。
TensorFlow 提供了多种 API 。最低级别的 API——TensorFlow Core—— 提供了完整的编程控制。高级 API 则建立在 TensorFlow Core 的顶部。这些更高级别的 API 通常比 TensorFlow Core 更容易学习和使用。此外,更高级别的 API 使得重复性的任务在不同的用户之间变得更容易、更一致。一个高级 API 就像 tf.estimator ,可以 帮助您管理数据集 、 评估器 、 训练和推理。
TensorFlow 中的数据中心单位是张量。一个张量由一组形成任意数量维数组的原始值组成。张量的阶就是它的维数。
一些使用Tensorflow 的Google 应用有:
1.RankBrain: 在www.google.com 上大规模部署用于搜索排名的深度神经网络。
2.Inception图像分类模型: 基准模型和对高度精确的计算机视觉模型的后续研究, 它是 在获得2014 年 Imagenet 图像分类挑战赛的模型基础之上进行构建的。
3.SmartReply: 可自动生成电子邮件响应的Deep LSTM 模型 。
4.Massively Multitask Networks for Drug Discovery:Google 与斯坦福大学合作的识别有效候选药的的 深度 神经网络模型。
5.用于OCR的设备级计算机视觉: 基于设备级的计算机视觉模型实现光学字符识别, 进行 实时翻译 。
资源
2.Apache SystemML
利用大数据进行机器学习的最佳开源工具。
SystemML 是由 IBM 创建的机器学习技术,是 Apache 中的顶级项目之一,它是一个灵活、可扩展的机器学习系统。 SystemML 的重要特点如下:
1. 使用类R 和类 Python 语言定制算法。
2. 有多种执行模式,包括Spark MLContext 、 Spark Batch 、 Hadoop Batch 、 Standalone 和 JMLC(Java 机器学习连接器 ) 。
3. 基于数据和聚类特性的自动优化,保证了算法的 高 效率和可扩展性。
4. 将SystemML 视为机器学习的结构化查询语言 SQL 。 SystemML 的最新版本( 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 进行额外的深度学习,例如导入和运行神经网络架构以及用于训练的预训练模型。
SystemML的Java机器学习连接器(JMLC)
Java 机器学习连接器( JMLC ) API 是一种编程接口,它在嵌入式时与 SystemML 进行交互。 JMLC 的主要目的是作为一个评分 API ,其中,评分函数是用 SystemML 的 DML 语言表示的。除了评分外,嵌入式 SystemML 还可在一台机器上运行的更大的应用程序的上下文中 , 执行聚类等无监督学习任务。
资源
3.Caffe
Caffe 是一种清晰而高效的深度学习框架 。
Caffe 最初由杨庆佳在加州大学伯克利分校读博期间发起,后来由伯克利 AI 研究公司( BAIR )和社区贡献者联合开发。它主要专注于用于计算机视觉应用的卷积神经网络。对于计算机视觉相关的任务来说, Caffe 是一个不错且较为流行的选择,您可以在 Caffe Model Zoo 上注册,下载很多已经成功建模的模型,直接用于开发。
优点
1.Expressive 架构鼓励实用和创新。用配置定义的模型和优化 ,而 不需要硬编码。通过设置单个标志在GPU 机器上进行训练,然后部署聚类或移动设备,实现 CPU 和 GPU 之间的切换。
2. 可扩展代码 更有助于开发 。在Caffe 开发好的 的第一年,就有1,000 多个开发者分享 了 出去,对其做了重大贡献 。
3.Caffe 的高速使理论实验和实际应用得到了完美的结合。 Caffe 使用单个 NVIDIA K40 GPU 每天可处理超过 6000 万张图像。
4. 社区:Caffe 已经为视觉、语音和多媒体领域的学术研究项目,启动原型,甚至大规模工业应用提供支持。
资源
4.Apache Mahout
Apache Mahout 是一个 分布式线性代数框架,提供了一些经典的机器学习算法。
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-Means 、 Canopy 、 Dirichlet 和 Mean-Shift 算法等。
3. 分布式朴素贝叶斯和互补朴素贝叶斯的分类实现。
4. 用于进化编程的分布式适应度函数。
5. 矩阵和矢量库。
资源
5.OpenNN
OpenNN 是一个用 c++ 编写的开源类库,它实现了神经网络建模 。
Opennn ( 开放神经网络图书馆 ) 以前被称为 Flood ,它是 以R. Lopez 在 2008 年泰罗尼亚技术大学的博士论文《在工程变分问题的神经网络》为基础开发的 。
Opennn 使用一组函数实现了数据挖掘,并且,可以使用一个 API 将这些函数嵌入到其他软件工具中,使软件工具和预测分析任务之间进行交互。 Opennn 的主要优点就是它的高性能。由于采用 c++ 开发,因此它有更好的内存管理和更高的处理速度,并利用 OpenMP 和 GPU 加速度( CUDA )实现 CPU 并行化。
Opennn 包中含有单元测试、许多示例和大量文档。为神经网络算法和应用的研究开发提供了一个有效的框架。神经网络设计是一个基于 OpenNN 的专业预测分析工具,这就意味着神经网络设计的神经引擎是基于 OpenNN 建立的。
OpenNN 旨在从数据集和数学模型中进行学习。
数据集
特征回归
模式识别
时间序列预测
数学模型
最佳控制
最佳形状设计
数据集和数学模型
反向问题
资源
6.Torch
Torch 是一个开源机器学习库、科学计算框架和基于 Lua 编程语言的脚本语言。

功能
1. 一个强大的 n 维数组
2. 有很多索引、切片、转换的程序。
3.可 使用 LuaJIT 编写简单的 C 扩展。
4. 线性代数程序
5. 神经网络和基于能量的模型
6. 数字优化程序
7.GPU 支持,更加快速和高效
8. 可嵌入,带有 iOS 和 Android 的后台端口
Torch 供 Facebook 人工智能研究小组、 IBM 、 Yandex 和 Idiap 研究所使用。现在,它已经扩展到 Android 和 iOS 系统上,研究人员也 使用Torch 来构建硬件实现数据流。
Pytorch 是一个 Python 的开源机器学习库,用于自然语言处理等应用,主要由 Facebook 的人工智能研究小组开发, Uber 的概率编程软件 "Pyro " 就是在 Pytorch 上创建的。
资源
7.Neuroph
Neuroph 是一种 用 Java 编写的面向对象的神经网络框架。
Neuroph 可用于在 Java 程序中创建和训练神经网络,它 提供了Java 类库以及用于创建和训练神经网络的 GUI 工具 easyNeurons 。 Neuroph 是一个轻量级的 Java 神经网络框架,可 用于开发常见的神经网络架构。它包含一个设计良好的开源Java 库,其中包含少量与基本神经网络概念对应的基础类。它还有一个很好的 GUI 神经网络编辑器来快速创建 Java 神经网络组件。目前,已经在 Apache 2.0 许可下作为开源发布出来。
Neuroph 的核心类与人工神经元、神经元层、神经元连接、权重、传递函数、输入函数和学习规则等基本神经网络概念对应。 Neuroph 支持常见的神经网络体系结构,例如具有反向传播, Kohonen 和 Hopfield 网络的多层感知器。所有的这些类都可以进行扩展和定制,以自定义创建神经网络和学习规则。 Neuroph 同时也支持图像识别。
资源
8.Deeplearning4j
Deeplearning4j 是第一个为 Java 和 Scala 编写的商业级开源分布式深度学习库。
Deeplearning4j 旨在成为顶尖的即拿即用设备,而不是只是做一些配置,这使得非专业人员也能够快速的构建模型。
DL4J 可以通过 Keras (包括 TensorFlow , Caffe 和 Theano )从大多数主要框架中导入神经网络模型,它为数据科学家、数据工程师和 DevOps 提供了跨团队工具包,弥合了 Python 生态系统和 JVM 之间的障碍。现在, Keras 是 Deeplearning4j 的 Python 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.JavaCPP : Java 和 C ++ 之间的桥梁
5.Arbiter :机器学习算法的评估工具
6.RL4J : JVM 的深度增强学习
9.Mycroft
Mycroft 声称是世界上第一个开源助手,适用于从科学项目到企业软件应用程序的任何事情。

Mycroft 可以在任何地方运行 —— 台式计算机上、在汽车内或在树莓派上运行。这是可以自由混合、自由扩展和改进的开源软件。
10.OpenCog
OpenCog 是一个旨在构建开源人工智能框架的项目。
OpenCog 是认知算法的多元化组合,每种组合都体现了它们的创新之处。但是,认真遵守认知协同原则才是 OpenCog 整体架构强大的原因。 OpenCog 最初是基于 2008 年 “Novamente Cognition Engine” ( NCE )发布的源代码。
1. 一个图表数据库,它包含术语、原子公式、句子和关系作为超图。
2. 一个模理论解算器,作为通用图形查询引擎的一部分,用于执行图和超图模式匹配。
3. 一种称为元优化语义进化搜索的概率遗传程序(MOSES ),最初由在 Google 工作的 Moshe Looks 开发。
4.有一个 基于 OpenPsi 和 Unity 的虚拟世界中的交互学习应用体系。
5. 有一个由Link Grammar 和 RelEx 组成的自然语言输入系统,它们都采用类 AtomSpace 来表示语义和句法的关系。
6. 有一个称为SegSim 的自然语言生成系统,它实现 NLGen 和 NLGen2 。
7.Psi 理论的实现,用于处理情绪状态、驱动和冲动,称为 OpenPsi 。
资源