博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
TensorFlow、DMTK与SystemML孰优孰劣
阅读量:6256 次
发布时间:2019-06-22

本文共 2151 字,大约阅读时间需要 7 分钟。

毫无疑问,机器学习是目前数据分析领域最为炙手可热的主题之一,其研究成果早已渗透到了日常生活中,从垃圾邮件过滤到人脸支付,从信用欺诈检测到自然灾害预测等场景无一不活跃着机器学习的身影。但即便机器学习已经得到了广泛的应用,开发人员能够从网上找到很多机器学习算法实现,但是这些代码往往“脏”而“乱”,没有经过大规模的生产验证。幸运的是现在这种窘境已经不复存在了,因为Google、Microsoft和IBM分别发布并开源了自己的机器学习工具包TensorFlow、DMTK和SystemML,每一个项目都是各自公司知识积累的结晶,在其内部发挥着举足轻重的作用,那么这些工具包相互之间又有哪些区别呢?

\\

功能特性

是一个用来编写和执行机器学习算法的工具。计算在数据流图中完成,图中的节点进行数学运算,边界是在各个节点中交换的张量(Tensors--多维数组)。TensorFlow负责在不同的设备、内核以及线程上异步地执行代码,目前支持CNN、RNN和LSTM等图像、语音和自然语言处理(NLP)领域最流行的深度神经网络模型。

\\

,它由参数服务器和客户端软件开发包(SDK)两部分构成。参数服务器支持存储混合数据结构模型、接受并聚合工作节点服务器的数据模型更新、控制模型同步逻辑;客户端软件开发包负责维护节点模型缓存(与全局模型服务器同步)、本地训练和模型通讯之间的流水线控制以及片状调度大模型训练。它包含DMTK框架、LightLDA和分布式词向量(Word Embedding)三个组件。

\\

重要通知:接下来InfoQ将会选择性地将部分优秀内容首发在微信公众号中,欢迎关注InfoQ微信公众号第一时间阅读精品内容。

\\

\"\"

\\

SystemML则是一门灵活的、可伸缩的机器学习 (ML) 语言,支持。DML中指定的算法能够根据数据和集群特性使用基于规则和基于成本的优化技术动态地编译和优化。

\\

执行环境与模式

\TensorFlow能够在台式机、服务器或者移动设备的CPU和GPU上运行,也可以使用Docker容器部署到云环境中。在处理图像识别、语音识别和语言翻译等任务时,TensorFlow依赖于配备图像处理单元(GPU)的机器和被用于渲染游戏图像的芯片,它对这些芯片依赖度比想象中的高。当前开源的版本能够运行在单机上,暂不支持集群。操作系统方面,TensorFlow能够运行在Linux和MacOS上。

\\

DMTK采用了传统的客户端-服务器架构,有多个服务器实例运行在多台机器上负责维护全局模型参数,而训练例程(routines)则使用客户端API访问并更新这些参数。为了适应不同的集群环境,DMTK框架支持两种进程间的通信机制:MPI和ZMQ。应用程序端不需要修改任何代码就能够在这两种方式之间切换。DMTK支持Windows和Linux(测试环境为Ubuntu 12.04)两种操作系统。

\\

SystemML有多种执行模式。在独立模式下,SystemML能够运行在单台机器上,这样数据科学家就能够在本地开发算法,不需要分布式集群。另外还可以将算法分发到Hadoop或者Spark上,从而利用已有的资源和技能。SystemML能够运行于Windows、 Linux以及MacOS上。

\\

实现语言、API接口及文档

\TensorFlow的核心是使用C++编写的,有完整的Python API和C++接口,同时还有一个基于C的客户端API。目前TensorFlow的Python API 需要Python 2.7,对于Python 3的支持正在开发中。在TensorFlow的官网上Google提供了、与。

\\

DMTK则是使用C++编写的,提供了一个客户端API和SDK。对DMTK框架、LightLDA、分布式词向量的应用场景、下载、安装、配置、运行以及性能等方面都做了详尽的介绍。

\\

SystemML使用Java语言编写,开发人员能够使用类似于R或者Python的语法表达算法,通过Java、Scala以及Python操作SystemML。,SystemML基本集中于GitHub上,包括构建、测试、独立模式运行命令以及一个线性回归的示例。

\\

应用场景

\Google已将TensorFlow用于GMail(SmartReply)、搜索(RankBrain)、图片(生成图像分类模型--Inception Image Classification Model)、翻译器(字符识别)等产品。

\\

虽然Microsoft并没有在DMTK的官网上透露其在内部的应用情况,但是从其功能特点以及定位来看或许更倾向于自然语言处理方面,例如文本分类与聚类、话题识别以及情感分析等。

\\

,沃森(Watson)在几年前的大型活动里就整合了很多SystemML的机器学习功能,当然目前开源的SystemML依然在孵化阶段。

\\

感谢对本文的审校。

\\

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至。也欢迎大家通过新浪微博(,),微信(微信号:)关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入InfoQ读者交流群(已满),InfoQ读者交流群(#2))。

转载地址:http://yqxsa.baihongyu.com/

你可能感兴趣的文章
安装Jenkins getting started卡住
查看>>
金软PDF转换(x-PDFConper)
查看>>
喵哈哈村的魔法考试 Round #15 (Div.2) 题解
查看>>
使用架构(XSD)验证XML文件
查看>>
Android开发之httpclient文件上传实现
查看>>
极客头条使用心得
查看>>
CSS解决无空格太长的字母,数字不会自己主动换行的问题
查看>>
日志打印longging模块(控制台和文件同时输出)
查看>>
这些年我们一起搞过的持续集成~Jenkins+Perl and Shell script
查看>>
php新版本号废弃 preg_replace /e 修饰符
查看>>
Android:Unable to resolve target ‘android-8’问题解决
查看>>
cocos2D(七)---- CCScene
查看>>
【DeepLearning】汉字手写体识别
查看>>
2017年中国大学生程序设计竞赛-中南地区赛暨第八届湘潭市大学生计算机程序设计大赛题解&源码(A.高斯消元,D,模拟,E,前缀和,F,LCS,H,Prim算法,I,胡搞,J,树状数组)...
查看>>
PostgreSQL 10首个测试版本发布
查看>>
ORACLE拼日期
查看>>
使用eclipse创建android项目的时候为什么会生成两个项目
查看>>
常见内存错误的几点总结
查看>>
Extjs的各版本下载
查看>>
使用LVS实现负载均衡原理及安装配置详解
查看>>