博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
雅虎开源了TensorFlowOnSpark
阅读量:5912 次
发布时间:2019-06-19

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

雅虎开源了TensorFlowOnSpark,数据科学家和工程师们可以直接利用运行于CPU/GPU架构上的Spark或者Hadoop做分布式模型训练。据报道,这个库支持把现有的TensorFlow程序切换到新的API,同时实现了模型训练的性能提升。

在开源公告里,雅虎说明了TensorFlowOnSpark想解决的问题,比如在深度神经网络训练中管理Spark数据管线之外的其他集群带来的运维负载,以网络I/O为瓶颈的数据集在训练集群的传入和传出,令人讨厌的系统复杂性,以及端到端的整体学习时延。TensorFlowOnSpark的工作和雅虎之前开源的CaffeOnSpark相似。现有的对TensorFlow和Spark的集成所做的努力,有DataBricks的TensorFrame,以及Amp Lab 的SparkNet,这些对于雅虎来说都是在正确方向上的迈进,但是在允许TensorFlow进程之间直接通信方面还是有所欠缺。雅虎的目标之一,是让TensorFlowOnSpark成为一个完全对Spark兼容的API,在一个Spark处理工作流里,其集成能力能跟SparkSQL、MLib以及其他Spark核心库一样好。

在架构上,它把给定TensorFlow算法和TensorFlow core放在一个Spark Executor中,并让TensorFlow任务能够通过TensorFlow的文件阅读器和QueueRunners直接获取HDFS数据,这是一种有着更少网络I/O以及“把计算带给数据”的方案。TensorFlowOnSpark在语义上就支持对执行器的端口预留和监听,对数据和控制函数的消息轮询,TensorFlow主函数的启动,数据注入,直接从HDFS读取数据的阅读器和queue-runner机制,通过feed_dict向TensorFlow注入Spark RDD,以及关机。

除了TensorFlowOnSpark,雅虎还在他们自己的分支上扩展了TensorFlow核心C++引擎以在Infiniband里使用RDMA,这个需求在TensorFlow主项目里被提出过还产生了相关讨论。雅虎的Andy Feng注意到,使用RDMA而不是gRPC来做进程间通信,在不同的网络里会带来百分之十到百分之两百不等的训练速度的提升。

本文转自d1net(转载)

你可能感兴趣的文章
The Shared folder with you
查看>>
挖掘数据金矿 领军协同创新 曙光荣膺“2016大数据创新应用领袖企业”称号
查看>>
oschina程序开发
查看>>
《从零开始学Swift》学习笔记(Day 40)——析构函数
查看>>
CDN相关
查看>>
查找(AVL平衡二叉树)
查看>>
POJ2406 Power Strings(KMP)
查看>>
极值问题(acms)
查看>>
SVN Hooks的介绍及使用
查看>>
JAVA核心编程教学
查看>>
apache 限制指定user_agent
查看>>
APP的广告模式
查看>>
判断一个字符是否为数字的两种方法(C/C++)
查看>>
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleExcept问题解决方案
查看>>
600. Non-negative Integers without Consecutive Ones
查看>>
关于正则表达式的入门心得
查看>>
axios 拦截 , 页面跳转, token 验证(自己摸索了一天搞出来的)
查看>>
区块链初始化与实现POW工作量证明
查看>>
Python从菜鸟到高手(13):分片(Slicing)
查看>>
编码导致 html和aspx 样式差异,变形
查看>>