欢迎您光临本小站。希望您在这里可以找到自己想要的信息。。。

TensorFlow、DMTK与SystemML孰优孰劣

架构&设计模式 water 3338℃ 0评论

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

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

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

SystemML则是一门灵活的、可伸缩的机器学习 (ML) 语言,支持描述性分析、分类、聚类、回归、矩阵分解以及生存分析等算法。DML中指定的算法能够根据数据和集群特性使用基于规则和基于成本的优化技术动态地编译和优化。

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