TensorFlow架构学习
0 - TensorFlow
基于数据流图,节点表示某种抽象计算,边表示节点之间联系的张量。
Tensorflow结构灵活,能够支持各种网络模型,有良好的通用性和扩展性。

1 - 系统概述
TensorFlow以$C\ API$为界限,分为前端系统(提供编程模型,负责构造计算图)以及后端系统(提供运行时环境,负责执行计算图),如下图。

1.1 - 模块Client
Client是一个支持多语言的编程环境,它提供基于计算图的编程模型,方便用户构造各种复杂的计算图,实现各种形式的模型设计和构建。Client通过Session连接后端系统,启动计算图的执行过程。
1.2 - 模块Distributed Master
在分布式运行环境中,Distributed Master从计算图中反向遍历,找到所依赖的最小值图,然后将最小子图分裂成多个子图片段分布到不同的进程和设备上运行,然后将多个子图片段被分派给Work Service,随后Work Service启动子图片段执行过程。
1.3 - 模块Worker Service
对于每一个任务,启动一个Worker Service,按照计算图中的节点依赖关系,根据当前的硬件环境(GPU or CPU),调用$OP$的$Kernel$实现完成$OP$的运算(一种典型的多态实现技术)。并且因为分布式的环境,Worker Service需要负责将$OP$运算的结果发送到其他的Work Service或者从其他的Work Service接受其$OP$运算的结果。
1.4 - Kernel Implements
$Kernel$是$OP$在某种硬件设备的特定实现,其负责执行$OP$计算。TensorFlow运行时包含200多个标准的$OP$(包括数值计算、多维数组操作、控制流、状态管理等)。每一个$OP$都根据设备类型实现了一个优化的$Kernel$,运行时根据本地设备类型,为$OP$选择特定的$Kernel$实现。其中,大多数$Kernel$基于$Eigen::Tensor$实现(一个使用$C++$模板技术,为多核$CPU/GPU$生成高效的并发代码),但同时,TensorFlow也可以直接使用$cuDNN$实现更加高效的$Kernel$。

参考资料
https://www.jianshu.com/p/a5574ebcdeab
TensorFlow架构学习的更多相关文章
- (转) TensorFlow深度学习,一篇文章就够了
TensorFlow深度学习,一篇文章就够了 2016/09/22 · IT技术 · TensorFlow, 深度学习 分享到:6 原文出处: 我爱计算机 (@tobe迪豪 ) 作者: 陈迪 ...
- TensorFlow深度学习,一篇文章就够了
http://blog.jobbole.com/105602/ 作者: 陈迪豪,就职小米科技,深度学习工程师,TensorFlow代码提交者. TensorFlow深度学习框架 Google不仅是大数 ...
- 问题集录--TensorFlow深度学习
TensorFlow深度学习框架 Google不仅是大数据和云计算的领导者,在机器学习和深度学习上也有很好的实践和积累,在2015年年底开源了内部使用的深度学习框架TensorFlow. 与Caffe ...
- 【从零开始学BPM,Day1】工作流管理平台架构学习
[课程主题] 主题:5天,一起从零开始学习BPM [课程形式] 1.为期5天的短任务学习 2.每天观看一个视频,视频学习时间自由安排. [第一天课程] Step 1 软件下载:H3 BPM10.0全开 ...
- Mybatis架构学习
Mybatis架构学习 MyBatis 是支持定制化 SQL.存储过程以及高级映射的持久层框架.MyBatis 封装了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.可以对配置和原生Map使用 ...
- TensorFlow简易学习[3]:实现神经网络
TensorFlow本身是分布式机器学习框架,所以是基于深度学习的,前一篇TensorFlow简易学习[2]:实现线性回归对只一般算法的举例只是为说明TensorFlow的广泛性.本文将通过示例Ten ...
- ABP架构学习系列一 整体项目结构及目录
本系列是基于aspnetboilerplate-0.8.4.0版本写的,其中原因是由于较高的版本太抽象难以理解和分析,对于还菜菜的我要花更多的时间去学习. abp的源码分析学习主要来源于 HK Zha ...
- ABP架构学习系列
ABP实践学习系列 ABP Zero 本地化语言的初始化和扩展 ABP Zero 导航菜单之角色权限 ABP Zero示例项目问题总结 ABP后台服务之作业调度Quartz.NET ABP架构学 ...
- Tensorflow[架构流程]
1. tensorflow工作流程 如官网所示: 根据整体架构或者代码功能可以分为: 图1.1 tensorflow架构 如图所示,一层C的api接口将底层的核运行时部分与顶层的多语言接口分离开. 而 ...
随机推荐
- jQuery、layer实现弹出层的打开、关闭功能实例详解
本文主要介绍了jQuery.layer实现弹出层的打开.关闭功能,需要的朋友可以参考下,希望能帮助到大家. 打开弹出层: 在list页面带入layer.js 在list页面点击时,弹出form弹出层, ...
- try语句的使用
C语言里try是一个语句或函数.其作用是是抛出错误用. 将有可能产生错误的语句括在一起,放入try语句块.如果在try语句块中发生异常,FlashPlayer会创建一个错误对象,并将该Error对象派 ...
- Jquery Mobile列表
向 <ol> 或 <ul> 元素添加 data-role="listview" 1.圆角和外边距 :data-inset="true" ...
- 论文总结(Frequent Itemsets Mining With Differential Privacy Over Large-Scale Data)
一.论文目标:将差分隐私和频繁项集挖掘结合,主要针对大规模数据. 二.论文的整体思路: 1)预处理阶段: 对于大的数据集,进行采样得到采样数据集并计算频繁项集,估计样本数据集最大长度限制,然后再缩小源 ...
- POJ 3713 Transferring Sylla (三联通分量)
Transferring Sylla Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 3533 Accepted: 988 ...
- 【转载】 qml: MouseArea重叠问题;
原文: https://blog.csdn.net/qq_15024587/article/details/80000443 MouseArea控件大家应该是很熟悉的了. 使用起来也是非常方便的说 ...
- CentOS 6.x 最小化安装推荐安装的依赖包和修改内核参数
CentOS 6.x 最小化安装推荐安装的依赖包 我在日常工作中,新建的xenserver的虚拟机,CentOS release 6.9 (Final)操作系统,采用最小化安装,后续很多操作需要各种依 ...
- 2018 CCPC-FINAL 后记
赛前认为这将会是我生涯最接近铁牌的一场比赛,遗憾的是没有抓住机会,又打了个铜出来. 6题可做题,去掉签到4道数学题可把我无聊坏了,幸好主办方出了个算法题给我自娱自乐了几个小时. Day1热身赛,贪心, ...
- springboot启动报错Failed to configure a DataSource
2018-11-21 19:43:12.076 WARN 5392 --- [ main] ConfigServletWebServerApplicationContext : Exception e ...
- docker 基本功能
Docker开启Remote API docker默认是没有开启Remote API的,需要我们手动开启. 1.编辑/lib/systemd/system/docker.service文件: 注释掉图 ...