机器学习的主要编程框架
Posted rockyching2009
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了机器学习的主要编程框架相关的知识,希望对你有一定的参考价值。
来源:《暗知识-机器认知如何颠覆商业和社会》
TensorFlow是由谷歌大脑团队开发的,主要用于机器学习和深度神经网络的研究。2016年5月,谷歌从Torch(一种编程框架)转移到TensorFlow,这对其他编程框架造成了打击,特别是torch和theanoo许多人将TensorFlow描述成一个比theano更现代化的版本,吸取了这些年在新领域/技术的许多重要的经验教训。
TensorFlow以智能、灵活的方式而闻名,是一种高度可扩展的机器学习系统,使其更容易适应不同的新旧产品和研究,并且比较容易安装,还针对初学者提供了教程,涵盖神经网络的理论基础和实际应用。TensorFlow比theano和torch慢,但谷歌和开源社区正在解决这个问题。TensorBoard是TensorFlow的可视化模块,它提供了一个计算路径的直观视图。深度学习库Keras被移植到TensorFlow上运行,这意味着任何用Keras编写的模型现在都可以运行在TensorFlow上。最后,值得一提的是TensorFlow可以在各种硬件上运行,其特点如下:
(1)GPU加速:支持
(2)语言/界面:Python、Numpy、C++
(3)平台:跨平台
(4)维护者:谷歌
theano起源于2007年在蒙特利尔大学的知名MILA(学习算法研究所),是用Python编写的CPU/GPU符号表达式的深度学习编译器。theano功能强大,速度极快,并且灵活,但通常被认为是一个底层框架。因此,原生theano更像是一个研究平台和生态系统,而非深度学习库,它经常被用作高级程序库的底层平台,而这些高级库给用户提供简单的API提供一些比较受欢迎的库包括Keras、Lasagne和Blocks。theano的缺点之一是仍然需要一个支持多GPU的方案。theano的特点下:
(1)GPU加速:支持
(2)语言/界面:Python,NumPYo
(3)平台:LinuxvMacosx和
(4)维护者:蒙特利尔大学MILA实验室
在所有常见的框架中,torch可能是最容易启动和运行的,特别是在使用Ubuntu(一种开源电脑操作系统)的情况下它允许基于神经网络的算法在GPU硬件上运行,而不需要在硬件级别进行编码。torch在2002年由纽约大学开发,被Facebook和Twitter等大型科技公司广泛使用,并得到英伟达的支持。Torch是用一种叫作的脚本语言编写的,这种语言很容易阅读,但并不像Python那样通用。有用的错误提示消息、大量的示例代码/教程以及Lua的简单性让torch很容易上手。其特点如下:
(1)GPU加速:支持
(2)语言/界面:Lua
(3)平台:Linux、android、Mac OS X、ios和Windows
(4)维护者:Ronan、Clément、Koray和Soumith
Caffe被开发用于利用卷积神经网络的图像分类/机器视觉,由1000多名开发人员推动其发展。Caffe最出名的可能是Mode1Zoo模型,开发者无须编写任何代码就可以直接使用。
Caffe主要针对工业应用,而torch和theano是为研究量身打造的。Caffe不适用于非计算机视觉深度学习应用,如文本、声音或时间序列数据。Caffe可以在各种硬件上运行,并且CPU和GPU之间的切换可以通过设置单个标志来完成。Caffe的运行速度比theano和torch要慢。其特点如下:
(1)GPU加速:支持
(2)语言/界面:C、C++、Python、MATLAB、CLI
(3)平台:Ubuntu、MacOSX、windows实验版
(4)维护者:伯克利视觉和学习中心(BVLC)
CNTK是微软深度学习工具包,是微软的开源深度学习框架。CNTK在语音社区中比在一般深度学习社区中更为著名,可以用于图像和文本训练。CNTK支持多种算法,例如Feed Forward、CNN、RNN、LSTM和Sequence-to-Sequence。它可以运行在许多不同的硬件类型上,包括多个GPU。其特点如下:
(1)GPU加速:支持-[
(2)语言/界面:Python、C++、C#和CLI
(3)平台:Windows、Linux
(4)维护者:微软研究院
H20也称为H20.ai,是世界上使用最广泛的开源深度学习平台之一。它被全球超过8万名数据科学家和研究人员以及超过9000家企业和组织所用,包括为全球最有影响力的一些公司开发关键任务数据产品。H20提供基于的用户界面,同时可以访问机器学习软件库,并开启机器学习的过程。
维基百科中有一张表详细列出了各主要编程框架的参数和特点,链接如下:https://en.wikipedia.org/wiki/Comparison_of_deep_learning_software。
以上是关于机器学习的主要编程框架的主要内容,如果未能解决你的问题,请参考以下文章
人工智能领域常用的开源框架和库(含机器学习/深度学习/强化学习/知识图谱/图神经网络)