专栏名称: 机器学习研究会
机器学习研究会是北京大学大数据与机器学习创新中心旗下的学生组织,旨在构建一个机器学习从事者交流的平台。除了及时分享领域资讯外,协会还会举办各种业界巨头/学术神牛讲座、学术大牛沙龙分享会、real data 创新竞赛等活动。
目录
相关文章推荐
爱可可-爱生活  ·  //@爱可可-爱生活:后天开奖,欢迎参与~- ... ·  昨天  
爱可可-爱生活  ·  【bomoto:一个专业的人体模型工具包,用 ... ·  3 天前  
题材挖掘君  ·  AI应用,最新标的公司梳理自取(精选名单) ·  5 天前  
黄建同学  ·  玩转AI游戏开发!#ai##科技# ... ·  6 天前  
51好读  ›  专栏  ›  机器学习研究会

【学习】TensorFlow架构与设计

机器学习研究会  · 公众号  · AI  · 2017-03-10 18:47

正文



点击上方“机器学习研究会”可以订阅哦
摘要
 

转自:刘光聪

TensorFlow是什么?

TensorFlow基于数据流图,用于大规模分布式数值计算的开源框架。节点表示某种抽象的计算,边表示节点之间相互联系的张量。


计算图实例

TensorFlow支持各种异构的平台,支持多CPU/GPU,服务器,移动设备,具有良好的跨平台的特性;TensorFlow架构灵活,能够支持各种网络模型,具有良好的通用性;此外,TensorFlow架构具有良好的可扩展性,对OP的扩展支持,Kernel特化方面表现出众。

TensorFlow最初由Google大脑的研究员和工程师开发出来,用于机器学习和神经网络方面的研究,于2015.10宣布开源,在众多深度学习框架中脱颖而出,在Github上获得了最多的Star量。

本文将阐述TensorFlow的系统架构,帮助读者加深理解TensorFlow的工作机理。

本文假设读者已经了解TensorFlow的基本编程模型,包括计算图, OPTensorSession等基本概念。

系统概述

TensorFlow的系统结构以C API为界,将整个系统分为「前端」和「后端」两个子系统:

  • 前端系统:提供编程模型,负责构造计算图;

  • 后端系统:提供运行时环境,负责执行计算图。


TensorFlow系统架构

如上图所示,重点关注系统中如下4个基本组件,它们是系统分布式运行机制的核心。

Client

Client是前端系统的主要组成部分,它是一个支持多语言的编程环境。它提供基于计算图的编程模型,方便用户构造各种复杂的计算图,实现各种形式的模型设计。

Client通过Session为桥梁,连接TensorFlow后端的「运行时」,并启动计算图的执行过程。

Distributed Master

在分布式的运行时环境中,Distributed Master根据Session.runFetching参数,从计算图中反向遍历,找到所依赖的「最小子图」。

然后,Distributed Master负责将该「子图」再次分裂为多个「子图片段」,以便在不同的进程和设备上运行这些「子图片段」。

最后,Distributed Master将这些「子图片段」派发给Work Service;随后Work Service启动「子图片段」的执行过程。

Worker Service

对于每以个任务,TensorFlow都将启动一个Worker ServiceWorker Service将按照计算图中节点之间的依赖关系,根据当前的可用的硬件环境(GPU/CPU),调用OPKernel实现完成OP的运算(一种典型的多态实现技术)。

另外,Worker Service还要负责将OP运算的结果发送到其他的Work Service;或者接受来自其他Worker Service发送给它的OP运算的结果。

Kernel Implements

KernelOP在某种硬件设备的特定实现,它负责执行OP的运算。


原文链接:

http://www.jianshu.com/p/a5574ebcdeab

“完整内容”请点击【阅读原文】
↓↓↓