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

原文地址:https://www.cnblogs.com/CZiFan/p/9595390.html

时间: 2024-10-08 14:06:20

TensorFlow架构学习的相关文章

(转) TensorFlow深度学习,一篇文章就够了

TensorFlow深度学习,一篇文章就够了 2016/09/22 · IT技术 · TensorFlow, 深度学习 分享到:6 原文出处: 我爱计算机 (@tobe迪豪 ) 作者: 陈迪豪,就职小米科技,深度学习工程师,TensorFlow代码提交者. TensorFlow深度学习框架 Google不仅是大数据和云计算的领导者,在机器学习和深度学习上也有很好的实践和积累,在2015年年底开源了内部使用的深度学习框架TensorFlow. 与Caffe.Theano.Torch.MXNet等框

问题集录--TensorFlow深度学习

TensorFlow深度学习框架 Google不仅是大数据和云计算的领导者,在机器学习和深度学习上也有很好的实践和积累,在2015年年底开源了内部使用的深度学习框架TensorFlow. 与Caffe.Theano.Torch.MXNet等框架相比,TensorFlow在Github上Fork数和Star数都是最多的,而且在图形分类.音频处理.推荐系统和自然语言处理等场景下都有丰富的应用.最近流行的Keras框架底层默认使用TensorFlow,著名的斯坦福CS231n课程使用TensorFlo

MySQL Innodb 架构学习

一.MySQL后台线程   1.Master Thread 核心后台线程,主要负责将缓冲池的数据异步刷新到磁盘.例如脏页的刷新,插入缓冲的合并,undo 页的回收等. 1)每秒一次的操作: 日志缓冲刷新到磁盘,即使该事务还没有提交.该操作总是会发生,这个就是为了再大的事务,提交时间都很短. 当IO压力很小时(1s内发生的IO次数小于5% innodb_io_capacity)合并5% innodb_io_capacity 的插入缓冲. 当脏页比例大于 innodb_max_dirty_pages

高可用软件Keepalived学习之Keepalived架构学习

最近在测试新游戏的部署方案,我们正在测试的一款手游后端代码部署采用HAProxy+Keepalived的方式进行部署,所以顺便研究下Keepalived的详细资料. Keepalived的官方地址是http://www.keepalived.org/index.html Keepalived是一个用C语言编写的路由软件,它的目的是为Linux系统或基于Linux系统的基础架构提供简单而强壮的负载均衡和高可用机制.负载均衡框架依赖于LVS的内核模块并提供四层负载均衡功能.它可以根据负载均衡器后端的

ABP架构学习系列

ABP实践学习系列 ABP Zero 本地化语言的初始化和扩展 ABP Zero 导航菜单之角色权限 ABP Zero示例项目问题总结 ABP后台服务之作业调度Quartz.NET ABP架构学习系列 ABP架构学习系列一 整体项目结构及目录 ABP架构学习系列二:ABP中配置的注册和初始化 ABP架构学习系列三:手工搭建ABP框架 IOC基础学习系列 .Net IOC框架入门之一 Unity .Net IOC框架入门之二 CastleWindsor 各大主流.Net的IOC框架性能测试比较(转

TensorFlow架构与设计:概述

TensorFlow是什么? TensorFlow基于数据流图,用于大规模分布式数值计算的开源框架.节点表示某种抽象的计算,边表示节点之间相互联系的张量. TensorFlow支持各种异构的平台,支持多CPU/GPU,服务器,移动设备,具有良好的跨平台的特性:TensorFlow架构灵活,能够支持各种网络模型,具有良好的通用性:此外,TensorFlow架构具有良好的可扩展性,对OP的扩展支持,Kernel特化方面表现出众. 系统概述 TensorFlow的系统结构以C API为界,将整个系统分

Tensorflow深度学习之十二:基础图像处理之二

Tensorflow深度学习之十二:基础图像处理之二 from:https://blog.csdn.net/davincil/article/details/76598474 首先放出原始图像: 1.图像的翻转 import tensorflow as tf import cv2 # 这里定义一个tensorflow读取的图片格式转换为opencv读取的图片格式的函数 # 请注意: # 在tensorflow中,一个像素点的颜色顺序是R,G,B. # 在opencv中,一个像素点的颜色顺序是B,

《TensorFlow深度学习》高清中文版PDF+英文版PDF+源代码

下载:https://pan.baidu.com/s/1Z5xJw4WWbJmJJlF4zvSXlA 更多资料分享:https://pan.baidu.com/s/1g4hv05UZ_w92uh9NNNkCaA <TensorFlow深度学习>高清中文版PDF+英文版PDF+源代码高清中文版PDF,245页,带书签目录,文字可以复制粘贴:高清英文版PDF,436页,带书签目录,文字可以复制粘贴:配套源代码.经典书籍,讲解详细. 学习如何分析并改进深度学习模型的表现,通过与标准算法进行比较,借助

分享《TensorFlow深度学习》高清中文版PDF+英文版PDF+源代码

下载:https://pan.baidu.com/s/1Z5xJw4WWbJmJJlF4zvSXlA 更多资料:http://blog.51cto.com/14050756 <TensorFlow深度学习>高清中文版PDF+英文版PDF+源代码高清中文版PDF,245页,带书签目录,文字可以复制粘贴:高清英文版PDF,436页,带书签目录,文字可以复制粘贴:配套源代码.经典书籍,讲解详细. 学习如何分析并改进深度学习模型的表现,通过与标准算法进行比较,借助机器智慧,在特定文本中从信息和决策行为