开发者必备:基于Linux生态的十大AI开源框架盘点

 更新时间:2017年1月22日 11:05  点击:1915

  前不久,雷锋网曾盘点了一系列机器学习相关的开源平台,包括谷歌的 TensorFlow、微软的 CNTK 以及百度的 PaddlePaddle 等等(详情见文末“相关阅读”)。这些平台各具特点,其中某些已经在业内得到了广泛认可和应用。

  与此前不同,本文将从开发者的角度出发,特别是针对开发者中为数众多的 Linux 系统和 Mac 系统用户,奉上一篇针对泛 Linux 生态的顶级人工智能开源工具盘点(当然,有些工具也并非只兼容 Linux)。

  1. Deeplearning4j:为 Java 用户量身定制

开发者必备:基于 Linux 生态的十大 AI 开源框架盘点

  Deeplearning4j(Deep Learning For Java)是 Java 和 Scala 环境下的一个开源分布式的深度学习项目,由总部位于美国旧金山的商业智能和企业软件公司 Skymind 牵头开发,并得到了腾讯的投资。正如它的命名,Deeplearning4j 的运行需要 Java 虚拟机 JVM 的支持。

  Deeplearning4j 团队在官网表示,他们希望通过一些深度学习算法的开发,将商业带入智能化数据的时代。也正是为了实现这一理想,惠及更多的用户,因此选择了移植性更好的 Java 环境来实现这些算法。目前,Deeplearning4j 的这些算法已经在谷歌、Facebook 和微软等平台得到了广泛应用。

  值得一提的是,为了便于开发者自由定制,Deeplearning4j 已经开放了尽可能多的算法调节接口,并对接口参数做出了详尽解释。同时,Deeplearning4j 团队还开发了针对矩阵运算的 ND4J 和 ND4S 库(N-Dimensional Arrays for Java/Scala),同样需要 JVM 的支持。

  Deeplearning4j 遵循 Apache 2.0 开源协议,提供了基于 AWS 云服务的 GPU 运算支持,以及微软服务器框架的支持。

  官网:http://deeplearning4j.org/

  2. Caffe:广受欢迎的深度学习框架

开发者必备:基于 Linux 生态的十大 AI 开源框架盘点

  Caffe 的全称是 “Convolution Architecture For Feature Extraction”,意为“用于特征提取的卷积架构”,主要开发者来自伯克利大学的视觉与学习中心(Berkeley Vision and Learning Center,BVLC),基于 BSD 2-Clause 开源许可协议发布。

  Caffe 是业内著名的深度学习框架,根据官网介绍,其主要特点是:运算速度快(官方显示在单片 NVIDIA K40 GPU 的运算能力下,Caffe 每天可以处理超过 60M 的图片数据),模块定制方便(在 CPU 或 GPU 之间的转换只需要简单修改一下参数设定),扩展能力强大(目前有超过一千名开发者基于 Caffe 开发了分支版本),以及丰富的社区支持(Caffe 已经被授权给各种研究机构、初创公司和工业集团),因此特别适合于神经网络建模和图像处理任务。

  官网:http://caffe.berkeleyvision.org/

  3. H2O:企业级机器学习框架

开发者必备:基于 Linux 生态的十大 AI 开源框架盘点

  H2O(即水的化学式)是一个开源、快速、可扩展的分布式机器学习框架,同时提供了大量的算法实现。它支持深度学习、梯度推进(Gradient Boosting)、随机森林(Random Forest)、广义线性模型(即逻辑回归,弹性网络)等各种机器学习算法。

  H2O 框架的核心代码由 Java 编写,数据和模型通过分布式的 key/value 存储在各个集群节点的内存中,算法使用 Map/Reduce 框架实现,并使用了 Java 中的 Fork/Join 机制来实现多线程。

  H2O 是一个更关注企业用户的人工智能分析工具,它聚焦于为掌握大量数据的企业用户提供快速精准的预测分析模型,从海量数据中提取有助于商业决策的信息。

  根据 H2O 官方的数据,目前已经有超过 7 万名数据科学家和 8 万家组织机构成为了 H2O 平台的忠实拥趸。

  官网:http://www.h2o.ai/

  4. MLlib:基于 Spark 框架的机器学习算法实现库

开发者必备:基于 Linux 生态的十大 AI 开源框架盘点

  MLlib 是 Apache 开源项目 Spark 针对一些常用的机器学习算法的实现库,同时也包括了相关的测试程序和数据生成器。

  按照官网的描述,MLlib 的主要特点是易用(天生兼容 Spark 框架的 API 接口和 Python、Java、Scala 等多种语言)、高性能(依靠 Spark 的数据管理能力,运行迭代和逻辑回归算法时比 Hadoop 框架快 100 倍)和易于部署(可以直接在现有的 Hadoop 数据集群上运行)。

  MLlib 目前支持分类、回归、推荐、聚类、生存分析等多种机器学习算法。

  官网:https://spark.apache.org/mllib/

  5. Apache Mahout:Hadoop 广泛采用的机器学习开源框架

开发者必备:基于 Linux 生态的十大 AI 开源框架盘点

  Apache Mahout 同样也是一个 Apache 开源项目,与 MLlib 相对应,Mahout 是应用在 Hadoop 平台下的机器学习开源框架。

  Mahout 有如下三个主要特点:

  1) 提供简单、可扩展的编程环境和框架;

  2) 同时为 Scala + Apache Spark、H2O 以及 Apache Flik 平台提供打包好的算法实现;

  3) 支持R语言的语法规则进行矩阵计算。

  官网:http://mahout.apache.org/

  6. OpenNN:专注神经网络的实现库

开发者必备:基于 Linux 生态的十大 AI 开源框架盘点

  OpenNN 的全称为“Open Neural Networks Library”,即开源神经网络库,其核心代码由 C++ 编写,从名字就可以看出,其主要面向深度学习领域,助力于用户构建各种不同的神经网络模型。

  据官方描述,OpenNN 可用于实现监督学习场景中任何层次的非线性模型,同时还支持各种具有通用近似属性的神经网络设计。

  除了模型的多层支持外,OpenNN 最主要优势还在于强大的性能表现。具体来说就是,OpenNN 能够通过 C++ 语言实现的核心代码高效地调节内容使用,通过 OpenMP 库很好地平衡多线程 CPU 调用,以及通过 CUDA 工具对 GPU 进行加速。

  官网:http://www.opennn.net/

  7. Oryx 2:重新设计了 Lambda 架构

开发者必备:基于 Linux 生态的十大 AI 开源框架盘点

  Oryx 2 是 Oryx 项目的 2.0 版,前身名为 Myrrix,后来被大数据公司 Cloudera 收购,才改名为 Oryx。

  Oryx 2.0 关注于大规模机器学习/预测分析基础框架的实时表现,它基于 Apache Spark 和 Apache Kafka 框架开发,并重新设计了 Lambda 架构,使得层次之间的复用性更强。

  2. 0 版相比之前实现了更多算法,包括 ALS 协同过滤、随机森林、以及K-means++等。

  官网:http://oryx.io/

  8. OpenCyc:全球最庞大、最完备的通用型知识库与常识推理引擎

开发者必备:基于 Linux 生态的十大 AI 开源框架盘点

  OpenCyc 是 Cycorp 公司推出的一个基于 Cyc 的开源版本,而 Cyc 是目前全球最庞大、最完备的通用型知识库与常识推理引擎。

  OpenCyc 包含数十万个精心组织的 Cyc 词条。Cycorp 公司不但免费提供 OpenCyc,同时也鼓励开发者基于 OpenCyc 开发针对于特定应用领域的分支版本。

  目前,OpenCyc 已经被成功应用在大数据建模、语言数据整合、智能文本理解、特定领域的专家系统建模和人工智能游戏。

  官网:http://www.cyc.com/platform/opencyc/

  9. Apache SystemML:专注于大数据分析的开源机器学习平台

开发者必备:基于 Linux 生态的十大 AI 开源框架盘点

  SystemML 是一个利用机器学习算法进行大数据分析的开源 AI 平台,其主要特点是支持R语言和 Python 的语法,专注于大数据分析领域,以及专门为高阶数学计算设计。

  按照官网的介绍,Apache SystemML 基于 Apache Spark 框架运行,其最大的特点就是能够自动、逐行地评估数据,并根据评估结果确定用户的代码应该直接运行在驱动器上还是运行在 Apache Spark 集群上。

  除了 Apache Spark 之外,SystemML 还支持 Apache Hadoop、Jupyter 和 Apache Zeppelin 等多个平台。目前,SystemML 技术已经成功应用在交通、航空和金融等多个领域。

  官网:http://systemml.apache.org/

  10. NuPIC:基于层级实时存储算法的机器智能平台

开发者必备:基于 Linux 生态的十大 AI 开源框架盘点

  NuPIC 是一个与众不同的开源机器智能平台,它基于一种大脑皮层理论,即“层级实时存储算法”(Heirarchical Temporary Memory,HTM)。NuPIC 聚焦于分析实时数据流,可以通过学习数据之间基于时间的状态变化,对未知数据进行预测,并揭示其中的非常规特性。

  NuPIC 关键的功能特性包括:

  1) 持续的在线学习:NuPIC 模型可以持续根据快速变化的数据流进行实时调整;

  2) 时间和空间分析:像人脑一样,NuPIC 可以同时模拟时间和空间的变化;

  3) 实时的数据流分析:智能化的数据分析不会随着数据量的增加而改变;

  4) 预测和建模:通过通用性的大脑皮层算法,对数据进行预测、建模和学习;

  5) 强大的异常检测能力:实时检测数据流的扰动,不依靠僵化的阈值设置和过时的算法;

  6) 层级实时存储算法:支持全新的 HTM 计算架构。

  官网:http://numenta.org/

  由于 2016 仅仅是人工智能走向主流的元年,未来随着技术的进一步发展和革新,势必会出现更多、更丰富的开发工具。这里值得注意的一点是:工具的意义不仅在于解决了日常研发中遇到的各种问题,更在于降低了开发的难度,引导了更多人投入到人工智能的研发之中。雷锋网

[!--infotagslink--]

相关文章

  • 在linux中使用包管理器安装node.js

    网上文章中,在linux下安装node.js都是使用源码编译,其实node的github上已经提供了各个系统下使用各自的包管理器(package manager)安装node.js的方法。...2015-03-15
  • Linux中grep命令详解

    grep命令是Linux系统中最重要的命令之一,功能是从文本文件或管道数据流中筛选匹配的行和数据,如果再配合正则表达式,功能十分强大,是Linux运维人员必备的命令,这篇文章主要介绍了Linux中grep详解,需要的朋友可以参考下...2023-02-15
  • Linux安装Pytorch1.8GPU(CUDA11.1)的实现

    这篇文章主要介绍了Linux安装Pytorch1.8GPU(CUDA11.1)的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-03-25
  • Linux 下使用shell脚本定时维护数据库的案例

    这篇文章主要介绍了Linux 下使用shell脚本定时维护数据库,本文通过案例分析给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-07-11
  • 详解Linux环境变量配置全攻略

    这篇文章主要介绍了Linux环境变量配置全攻略,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-03-31
  • linux服务器快速卸载安装node环境(简单上手)

    这篇文章主要介绍了linux服务器快速卸载安装node环境(简单上手),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-22
  • Linux下升级安装python3.8并配置pip及yum的教程

    这篇文章主要介绍了Linux下升级安装python3.8并配置pip及yum的教程,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下...2020-05-02
  • Linux下安装mysql-8.0.20的教程详解

    这篇文章主要介绍了Linux下安装mysql8.0.20的教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-05-25
  • linux下源码安装mysql5.6.20教程

    这篇文章主要为大家详细介绍了linux下源码安装mysql5.6.20教程的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2017-01-15
  • Linux zabbix agent部署及配置方法详解

    这篇文章主要介绍了Linux zabbix agent部署及配置方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-08-21
  • Linux下统计当前文件夹下的文件个数、目录个数

    这篇文章主要介绍了Linux下统计当前文件夹下的文件个数、目录个数,本文使用ls命令配合管理、grep命令实现统计需求,需要的朋友可以参考下...2020-07-11
  • Linux环境下nginx搭建简易图片服务器

    这篇文章主要介绍了Linux环境下nginx搭建简易图片服务器,需要的朋友可以参考下...2016-01-27
  • Linux CentOS MySQL数据库安装配置教程

    这篇文章主要为大家详细介绍了Linux CentOS MySQL数据库的安装配置教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2017-05-19
  • linux网络配置工具的使用

    这篇文章主要介绍了linux网络配置工具的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-03-31
  • Linux下常用压缩格式的压缩与解压方法详解

    这篇文章主要介绍了Linux下常用压缩格式的压缩与解压方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-07-11
  • Linux下semop等待信号时出现Interrupted System Call错误(EINTR)解决方法

    本篇文章是对在Linux下semop等待信号时出现Interrupted System Call错误(EINTR)的解决方法进行了详细的分析介绍,需要的朋友参考下...2020-04-25
  • 如何解决Linux下Too many open files问题

    Too many open files是Linux系统中常见的错误,从字面意思上看就是说程序打开的文件数过多,不过这里的files不单是文件的意思,也包括打开的通讯链接(比如socket),正在监听的端口等等,所以有时候也可以叫做句柄(handle),这个错误通常也可以叫做句柄数超出系统限制。...2021-06-01
  • Fedora14 Linux系统安装Golang开发环境笔记

    这篇文章主要介绍了Fedora14 Linux系统安装Golang开发环境笔记,本文讲解了2种安装方法,需要的朋友可以参考下...2020-05-01
  • linux上mysql安装详细教程

    这篇文章主要为大家详细介绍了linux上mysql安装详细教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2017-02-08
  • linux服务器开机启动oracle的设置方法

    这篇文章主要介绍了linux服务器下oracle开机自启动设置,本文分步骤给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下...2020-07-11