timcompp 2018-09-15
在本文中,我们将讨论一些用于Web开发的主要机器学习框架,例如TensorFlow和Caffe。
目前,机器学习是软件开发中最热门的趋势之一。许多分析师甚至认为,机器学习将彻底改变几个程序的Web开发过程,包括Web和移动应用程序。
以下几点清楚地表明了机器学习对Web开发的强大影响:
机器学习使用一些算法使计算机无需明确编程即可学习。它是最好的数据分析方法,可自动创建分析模型。这就是机器学习框架在Web开发中发挥重要作用的原因。
在本文中,我们将讨论一些用于Web开发的主要机器学习框架。清单如下:
五大机器学习框架
1. Microsoft Cognitive Toolkit
用:Python和C ++编写
这是Microsoft开源的深度学习工具包,用于训练算法以像人脑一样学习。通过使用此工具,您可以使用各种机器学习模型,如卷积神经网络、前馈DNN和循环神经网络。
毫无疑问,该工具旨在使用神经网络来浏览大型非结构化数据集。通过更快的训练时间和易于使用的架构,它可高度自定义,允许您选择自己的参数、网络和算法。特别感谢它对多机多GPU后端的支持,它可以轻松超越许多竞争对手。
点击试:https://docs.microsoft.com/en-us/cognitive-toolkit/Setup-CNTK-on-your-machine
2. TensorFlow
用:Python、Java和Go编写
它是Java开发中最流行的机器学习框架之一。它是一个开源库,使用数据流图进行数值计算。毫无疑问,TensorFlow是GitHub上分岔最多的机器学习项目,也是纳税人参与人数最多的项目。
TensorFlow的灵活架构使用户可以轻松地使用单个API在一个或多个GPU或CPU上实现计算,无论是台式计算机、服务器还是移动电话。
图中的节点表示数学运算,而图的边表示在它们之间传递的多维数据集(张量)。
在这里试试:https://www.tensorflow.org
3. Apache Mahout
用:Java和Scala编写
它是Apache提供的另一个最受欢迎的开源产品,主要面向统计学家、数据科学家和数学家,因此他们可以快速执行自己的算法。此外,它是一个分布式线性代数框架,用于创建具有可扩展性能的机器学习应用程序。 Mahout主要关注协作分组、过滤和分类。
此外,它使您能够在实际在大数据平台上运行的交互式环境中开发自己的数学计算,然后将完全相同的代码移动到您的应用程序中并实现。
Mahout Samsara还提供分布式线性代数和统计引擎,它们正在运行,并与交互式shell和库一起分发,以链接到生产中的应用程序。它通常使用map / reduce范例爬上Apache Hadoop平台,但这并不限制对基于Hadoop的其他实现的贡献。
在这里试试:https://github.com/apache/mahout
4. Caffe
用:C ++和Python编写
它是Java开发的深度学习框架,尤其适用于速度、表达式和模块化。它由Berkley AI研究团队开发。富有表现力的架构鼓励个性化应用和创新。
此外,配置选项允许用户通过配置单个指示器在GPU和CPU之间切换。Caffe的可扩展代码帮助推动了它的早期发展,使其成为另一个非常成功的GitHub机器学习项目。
Caffe的速度使其对研究机构和工业实施具有价值。它是利用卷积神经网络为图像分类/计算机视觉开发的。它还提供了Model Zoo,它是一组预先训练的模型,不需要任何编码即可实现。
无论如何,应该指出的是,Caffe最适合用于应用程序的构建,而不是专门用于除人工视觉之外的任何其他应用。
试试吧:http://caffe.berkeleyvision.org
5. Apache Singa
用:C ++,Python和Java编写
Apache Singa是一个可扩展且灵活的深度学习平台,用于大数据分析。它由新加坡国立大学的团队开发。该机器学习框架为大量数据中的可扩展分布式训练提供了灵活的架构。
可扩展以在各种硬件上运行。主要应用是自然语言处理(NLP)和图像识别。
目前,Apache孵化器项目提供了一种可以在一组节点中工作的简单编程模型。深度分布式学习在训练过程中使用模型共享和并行化。
但是,Singa支持传统的机器学习模型,如逻辑回归。
在这里试试:
Docker(https://hub.docker.com/r/nusdbsystem/singa/)或AWS(https://aws.amazon.com/marketplace/pp/B01NAUAWZW)
结论