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

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

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

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

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

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

Caffe的全称是“ConvolutionArchitectureForFeatureExtraction”,意为“用于特征提取的卷积架构”,主要开发者来自伯克利大学的视觉与学习中心(BerkeleyVisionandLearningCenter,BVLC),基于BSD2-Clause开源许可协议发布。

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

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

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

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

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

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

Mahout有如下三个主要特点:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

NuPIC关键的功能特性包括:

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

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

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

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

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

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

THE END
1.人工智能学习框架分类及特点初步成型:2010年左右,Theano成首个流行深度学习框架,开启GPU加速先河。 蓬勃发展:2015 - 2016年间,TensorFlow和PyTorch相继发布,前者由Google推出,后者源于Facebook,二者分别凭借强大计算能力和动态图机制成为业界宠儿。 多样化发展:2017年后,Keras凭借易用性崭露头角,PaddlePaddle等国产框架也开始崛起。 https://blog.csdn.net/noboxihong/article/details/144401134
2.深度学习轻量级神经网络模型,嵌入式微小设备也能实时检测然而,这些网络虽然具有深度上下文理解,但计算要求非常高,因此需要消耗数百瓦特功率的强效和昂贵硬件,使其不适合大多数IoT处理器。这促使学者们提出使用模型量化方法来实现移动和低功耗嵌入式设备上的微机器学习(TinyML)。虽然轻量级神经网络的进步使得在图像分类等任务上取得了很大的进展[11],最近开始在简化目标检测任务上https://blog.51cto.com/u_15671528/12791754
3.在线深度学习:在数据流中实时学习深度神经网络机器之心与经常在浅层神经网络中最优化一些凸性目标函数的传统在线学习(例如,线性的/基于核的假设)不一样的是,在线深度学习(ODL)更加具有挑战性,因为深度神经网络中的目标函数的优化是非凸的,而且常规的反向传播在实际过程中也不能很好地奏效,尤其是在线学习的设置中。在这篇论文中,我们提出了一种新的在线深度学习框架,https://www.jiqizhixin.com/articles/2017-12-30
4.国产开源深度学习框架,深度学习,简单开发3分钟看懂旷视深度学习框架MegEngine 立即观看 MegStudio 在线深度学习开发平台 MegStudio基于-MegEngine框架,提供高级免费算力、 模型库、公开项目与数据集、在线模型开发环境 开始使用 MegEngine 深度学习,简单开发 训练推理一体,缩短研发周期 超低硬件门槛,降低使用成本 https://megengine.org.cn/
5.武汉大学智能遥感解译LuoJiaNET框架与LuoJiaSET样本库正式上架武汉大学在国家自然科学基金委重大研究计划集成项目的支持下,与华为MindSpore框架团队共同研发了全球首个遥感影像智能解译专用深度学习框架武汉.LuoJiaNET和业界最大遥感影像样本库LuoJiaSET,并在华为昇思社区上线。在中国科学院院士龚健雅教授指导下,项目组建了以胡翔云教授为项目负责人,张觅副研究员、姜良存副研究员分别为Luhttps://rsgis.whu.edu.cn/info/1252/10354.htm
6.百度飞桨能做什么百度飞桨平台功能介绍超大规模深度学习模型训练技术 飞桨突破了超大规模深度学习模型训练技术,领先其它框架实现了千亿特征、万亿参数、数百节点并行训练的能力,解决了超大规模深度学习模型的在线学习和部署难题,实现了超万亿规模参数模型的实时更新。此外,飞桨还覆盖支持包括模型并行、流水线并行在内的最广泛并行模式和加速策略,引领了大规模分布式https://shouyou.3dmgame.com/gl/232761.html
7.深度学习实战篇:12大深度学习开源框架汇总详解(上)在人工智能的浪潮中,深度学习作为核心技术之一,正在不断地推动科技地进步。 深度学习框架作为实现深度学习算法的工具,其重要程度不言而喻。完善、开源的框架社区生态,也为深度学习的研究和应用提供了强大的支持。 然而,面对众多的深度学习框架,如何选择一款最适合你的开源框架,成为每个深度学习开发人员的必经之路。 http://www.360doc.com/content/24/0807/08/50382475_1130659978.shtml
8.Tensorflow:实战Google深度学习框架(豆瓣)TensorFlow是谷歌2015年开源的主流深度学习框架,目前已在谷歌、优步(Uber)、京东、小米等科技公司广泛应用。《Tensorflow实战》为使用TensorFlow深度学习框架的入门参考书,旨在帮助读者以最快、最有效的方式上手TensorFlow和深度学习。书中省略了深度学习繁琐的数学模型推导,从实际应用问题出发,通过具体的TensorFlow样例程序介绍https://book.douban.com/subject/26976457
9.主流深度学习框架CNTK在Azure GPU Lab提供了最高效的分布式计算性能。目前,CNTK对ARM架构的缺乏支持,限制了其在移动设备上的功能。 除了上述列出的深度学习框架之外,还有一些框架在下面的列表中。 随着深度学习框架的不断成熟,将会出现TensorFlow,Caffe 2和MXNet之间的竞争是预料之中的。https://cloud.tencent.com/developer/article/1464586
10.深度学习框架——Darknet·Taobotics通过视频的演示,我们可以了解到 Darknet 能够将图像上的物体选中并识别出来。本小节将介绍如何将开源项目深度学习框架 darknet移植到我们 handsfree ros机器人上,让我们的 handsfree ros 机器人通过摄像头完成简单的图像识别。 本文将简单的引导如何在我们的 handsfree ros机器人上使用 Darknet ,以及用下载好的模型来https://docs.taobotics.com/docs/handsfree/handsfree/Tutorial/Advanced/Object-Recognition/doc.html
11.什么是深度学习?MicrosoftAzure了解深度学习的定义、深度学习的用途及其工作原理。获取有关神经网络和 BERT NLP 的工作原理及其优点的信息。https://azure.microsoft.com/zh-cn/overview/what-is-deep-learning
12.深度学习平台KDL购买价格功能优势嘲案例深度学习平台KDL(Kingsoft Deep Learning)金山云为您提供深度学习平台服务,购买价格、功能优势、运用场景、案例文档、帮助您解决深度学习中的各类问题。https://www.ksyun.com/proservice/kdl
13.cubestudio开源云原生一站式机器学习/深度学习/大模型AI平台传统机器学习: ray-sklearn分布式, xgb单机训练推理 传统机器学习算法: ar/arima时间序列算法/random-forest/random-forest-regression/lr/lightgbm/knn/kmean/gbdt/decision-tree/pca/lda/catboost/xgb/超参搜索 分布式深度学习框架: tf/pytorch/mxnet/horovod/paddlejob/mindspore分布式训练 https://github.com/tencentmusic/cube-studio
14.彻底掌握ONNXRUNTIME框架深度学习模型部署看它!ONNXRUNTIME是主流的深度学习部署框架之一,支持ONNX格式模型在CPU、GPU、ARM等不同硬件平台上加速推理,支持C++、Python、Java、C#、JS等不同语言SDK。C++版本安装包下载如下: 不同版本的ONNXRUNTIME安装文件下载地址: https://github.com/microsoft/onnxruntime/tags https://www.eet-china.com/mp/a340798.html
15.深度学习(Deeplearning)综述5. 通道剪枝(channel pruning):结构或非结构剪枝:deep compression, channel pruning 和 network slimming等; 在CNN网络中,通过对特征图中的通道维度进行剪枝,可以同时降低模型大小和计算复杂度,并且压缩后的模型可以直接基于现有的深度学习框架进行部署。 6. 权重稀疏化(weight sparsification):通过对网络权重引入稀疏性https://www.jianshu.com/p/c8a46f00b06d