机器学习的爆炸性增长推动了许多开源工具的发展,使得开发人员更容易学习其技术。接下来,我们来看看开发者最喜欢的Java和Python机器学习框架都有哪些?

据技术专家介绍,未来人工智能和机器学习的前景是光明的。所以,如果开发者想学习一门理想的技能,机器学习是很棒的选择。本文了解了顶级的机器学习库和开源项目,给出了以下五大优秀框架。(排名不分先后)

Apache Singa

Apache Singa由新加坡国立大学的团队开发,是一个灵活可扩展的利用大数据分析的深度学习平台。这个深度学习框架为大量数据的可扩展分布式培训提供了灵活架构。Singa可扩展以运行各种硬件,主要应用在图像识别和自然语言处理(NLP)方面。

Singa目前是一个Apache孵化器项目,提供了简单的编程模型,可以在一个节点集群上工作。分布式深度学习在训练过程中使用模型划分和并行化,一般而言,Singa支持传统的机器学习模型,如逻辑回归。

Singa是用Java,C ++和Python编写的,可以在AWS上或通过Docker尝试使用。

Apache Mahout

Apache的另一个开源产品Apache Mahout是一个分布式线性代数框架,用于创建可扩展的高性能机器学习应用程序,旨在让数学家,统计学家和数据科学家快速实现算法,Mahout主要关注协同过滤,聚类和分类。

Apache Mahout使程序员能够在大数据平台执行的交互式环境中实现数学运算,然后将完全相同的代码移至应用程序并进行部署。Mahout Samsara提供了一个分布式线性代数和统计引擎,该引擎不仅性能良好,还可与交互式shell(现在位于Apache Zeppelin中)一起分发,可在生产环境中链接到应用程序的库。Mahout通常搭载Apache Hadoop平台使用map / reduce范例,但这不会限制对基于Hadoop实现的贡献。

最后,Apache Mahout是用Java和Scala编写的。

Microsoft Cognitive Toolkit (CNTK)

微软的认知工具包是一个开源的深度学习工具包,用于训练机器像人脑一样学习算法。CNTK使得用户可以很容易地使用流行的机器学习模型,如feed-forwards DNN,卷积神经网络和递归神经网络。

这个工具毫无疑问是使用神经网络处理非结构化数据的大数据集。凭借更短的培训时间和易于使用的架构,CNTK具有高度可定制性,允许程序员选择自己的参数,算法和网络。由于其支持“多机多GPU”,CNTK很容易胜过其竞争对手。如果有兴趣,微软甚至会提供一个介绍视频。

最后,Microsoft CNTK是用Python和C ++编写的。

Caffe

由伯克利人工智能研究团队开发的Caffe是一个由表达式,速度和模块化组成的深度学习框架。富有表现力的架构鼓励应用和定制创新,配置选项允许用户通过设置一个标志在CPU和GPU之间切换。Caffe的可扩展代码已经帮助推动了它的早期发展,使其成为一个被高度评价的GitHub机器学习项目。

Caffe的速度使其对研究机构和行业部署都非常有价值,它是通过卷积神经网络(CNN)来开发用于计算机视觉/图像分类的。Caffe提供一组预先训练的模型,不需要任何编码来实现。然而,Caffe最适合于构建应用,并且不是计算机视觉以外的任何其他应用。

最后,Caffe是用C++编写的有Python接口的机器学习框架。

TensorFlow

最后一个是我们最喜欢的机器学习框架,被称作无与伦比的TensorFlow框架。 TensorFlow是一个使用数据流图进行数值计算的开源软件库,是GitHub上最受欢迎的机器学习项目,也是参与者和贡献者最多的机器学习项目。

无论是台式机,服务器还是手机,TensorFlow灵活的架构都可以使用户轻松使用单一API将计算部署到一个或多个CPU或GPU。

TensorFlow主要是用Python编写的,但它也支持Java和Go的一些用法。

结论

在2018年,Python的持续增长肯定与过去几年机器学习的爆炸式增长有关。一些世界上最受欢迎的ML框架和库是由Python编写或主要由Python支持的,包括TensorFlow,Keras,Theano以及sci-kit learn,Chainer,H20,Microsoft Azure Studio,Veles和Neon等小型项目。Python不支持,C ++也支持,比如微软的CNTK和Caffe。

所以,如果你有兴趣学习一些ML技能,或者抓住最新的技术浪潮,那么可能是时候把旧的Python或C ++教科书甩开,开始实践了。

打开APP阅读更多精彩内容

点击阅读全文

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐