tensorflow大旨概念和原理介绍

关于 TensorFlow

TensorFlow 是1个施用数据流图(data flow
graphs),用于数值总计的开源软件库。

节点(Nodes)在图中意味着数学操作,图中的线(edges)则意味在节点间互为交换的多维数据数组,即张量(tensor)。它灵活的架构让您能够在各类阳台上展开总结,例如台式电脑中的1个或多少个CPU(或GPU),服务器,移动设备等等。

TensorFlow
最初由谷歌(Google)大脑小组(隶属于谷歌机器智能钻探部门)的琢磨员和工程师们开发出来,用于机器学习和深度神经互连网方面包车型地铁切磋,但以此种类的通用性使其也可广泛用于其余计量领域。

关于 TensorFlow

TensorFlow 是3个运用数据流图(data flow
graphs),用于数值计算的开源软件库。

节点(Nodes)在图中表示数学操作,图中的线(edges)则象征在节点间互为沟通的多维数据数组,即张量(tensor)。它灵活的架构让你能够在多种平台上举办总结,例如台式电脑中的1个或两个CPU(或GPU),服务器,移动装备等等。

TensorFlow
最初由谷歌大脑小组(隶属于谷歌(Google)机器智能切磋单位)的研讨员和工程师们开发出来,用于机器学习和纵深神经网络方面包车型地铁商讨,但那一个系统的通用性使其也可广泛用于其余计量领域。

骨干概念:数据流图

数量流图用“结点”(nodes)和“线”(edges)的有向图来叙述数学计算。

“节点” 一般用来代表施加的数学操作,但也能够表示数据输入(feed
in)的源点/输出(push out)的终点,或许是读取/写入持久变量(persistent
variable)的巅峰。

“线”表示“节点”之间的输入/输出关系。那些多少“线”能够输运“size可动态调整”的多维数据数组,即“张量”(tensor)。

张量从图中流过的直观图像是以此工具取名为“Tensorflow”的来由。一旦输入端的全体张量准备好,节点将被分配到各个计算设备完毕异步并行地推行运算。

图片 1

更详实的牵线能够查看tensorflow华语社区:http://www.tensorfly.cn/

TensorFlow主假若由总计图、张量以及模型会话几个部分组成。

主导概念:数据流图

数码流图用“结点”(nodes)和“线”(edges)的有向图来描述数学计算。

“节点” 一般用来表示施加的数学操作,但也得以象征数据输入(feed
in)的起源/输出(push out)的终极,可能是读取/写入持久变量(persistent
variable)的终点。

“线”表示“节点”之间的输入/输出关系。这一个数据“线”能够输运“size可动态调整”的多维数据数组,即“张量”(tensor)。

张量从图中流过的直观图像是以此工具取名为“Tensorflow”的由来。一旦输入端的全数张量准备好,节点将被分配到各类总计设备完结异步并行地实践运算。

图片 2

更详实的牵线能够查看tensorflow汉语社区:http://www.tensorfly.cn/

TensorFlow首假使由计算图、张量以及模型会话多个部分组成。

计算图

在编写程序时,大家都是一步一步总结的,每总计完一步就足以拿走3个实践结果。

在TensorFlow中,首先须求创设三个总结图,然后依照总计图运营八个会话,在对话中做到变量赋值,总括,获得终极结出等操作。

就此,能够说TensorFlow是二个规行矩步计算图设计的逻辑举办总计的编程系统。

TensorFlow的总结图能够分为五个部分:
(1)构造部分,包罗总计流图;(2)执行部分,通过session执行图中的计算。

组织部分又分为两有的:
(1)创设源节点;(2)源节点输出传递给其余节点做运算。

TensorFlow暗中同意图:TensorFlow python库中有贰个默许图(default
graph)。节点构造器(op构造器)能够追加节点。

计算图

在编写程序时,我们都是一步一步计算的,每总计完一步就足以收获2个实施结果。

在TensorFlow中,首先必要创设3个计算图,然后根据总括图运营一个对话,在对话中成功变量赋值,总计,得到终极结果等操作。

就此,能够说TensorFlow是1个遵纪守法计算图设计的逻辑实行总括的编制程序系统。

TensorFlow的计算图能够分成五个部分:
(1)构造部分,蕴含计算流图;(2)执行部分,通过session执行图中的总括。

布局地分又分为两局部:
(1)创立源节点;(2)源节点输出传递给其它节点做运算。

TensorFlow暗许图:TensorFlow python库中有贰个私下认可图(default
graph)。节点构造器(op构造器)能够追加节点。

张量

在TensorFlow中,张量是对运算结果的引用,运算结果多以数组的款型储存,与numpy中数组差其余是张量还包罗八个主要性质名字、维度、类型。

张量的名字,是张量的绝无仅有标识符,通过名字能够发现张量是怎么样计算出来的。比如“add:0”代表的是持筹握算节点”add”的首先个出口结果。维度和档次与数组类似。

张量

在TensorFlow中,张量是对运算结果的引用,运算结果多以数组的样式储存,与numpy中数组差其他是张量还隐含八个关键性质名字、维度、类型。

张量的名字,是张量的绝无仅有标识符,通过名字能够发现张量是什么样总结出来的。比如“add:0”代表的是计量节点”add”的首先个出口结果。维度和种类与数组类似。

模型会话

用来实施协会好的计算图,同时会话拥有和保管程序运维时的享有财富。

当计算实现之后,供给经过关闭会话来支援系统回收能源。

在TensorFlow中选用会话有三种格局。第③种供给明显调用会话生成函数和倒闭会话函数

import tensorflow as tf 

# 创建session  
session = tf.Session()  
#获取运算结果  
session.run()  
#关闭会话,释放资源  
session.close()  

第二种可以采用with的法门

with tf.Session() as session:  
    session.run()  

两种艺术不相同的是,第二种范围了session的功能域,即session那一个参数只适用于with语句上边,同时语句结束后自行释放能源,
而首先种方法session则效果于任何程序文件,需求用close来刑释能源。

模型会话

用来进行协会好的总计图,同时会话拥有和管理程序运转时的具备能源。

当总计实现之后,要求经过关闭会话来增派系统回收财富。

在TensorFlow中使用会话有二种办法。第三种供给掌握调用会话生成函数和倒闭会话函数

import tensorflow as tf 

# 创建session  
session = tf.Session()  
#获取运算结果  
session.run()  
#关闭会话,释放资源  
session.close()  

第三种能够行使with的不二法门

with tf.Session() as session:  
    session.run()  

两种方法不一致的是,第二种限制了session的成效域,即session这么些参数只适用于with语句下边,同时语句甘休后活动释放能源,
而首先种办法session则效果于整个程序文件,供给用close来释放能源。

tensorflow分布式原理

tensorflow的贯彻分为了单机完结和分布式达成。

单机的情势下,总结图会依据程序间的重视性关系依次执行。

在分布式实现中,供给贯彻的是对client,master,worker
process,device管理。

client也正是客户端,他通过session的接口与master和worker相连。

master则负责管理全数woker的计算图执行。

worker由三个或四个计算设备device组成,如cpu,gpu等。

具体进程如下图:

图片 3

在分布式达成中,tensorflow有一套专门的节点分配政策。

政策是根据代价模型,代价模型会同审查时度势各样节点的输入,输出的tensor大小以及所需的持筹握算时间,然后分配各类节点的测算设备。

tensorflow分布式原理

tensorflow的兑现分为了单机完结和分布式达成。

单机的情势下,总括图会依据程序间的依赖性关系依次执行。

在分布式完毕中,需求贯彻的是对client,master,worker
process,device管理。

client也正是客户端,他透过session的接口与master和worker相连。

master则负责管理全数woker的计算图执行。

worker由3个或多少个总结设备device组成,如cpu,gpu等。

具体进程如下图:

图片 4

在分布式达成中,tensorflow有一套专门的节点分配政策。

政策是依照代价模型,代价模型会审时度势每种节点的输入,输出的tensor大小以及所需的总计时间,然后分配各类节点的盘算设备。

增添功用

在tensorflow中比较首要的开始展览成效有,自动求导,子图执行,计算图控制流以及队列/容器

求导是机器学习中计算损失函数常用的演算,TensorFlow原生帮衬电动求导运算,它是经过计算图中的拓展节点落到实处。

子图执行是经过操纵张量的流向达成。

总括图控制流:是指控制计算图的节点极其运营的装置管理,它提供了飞跃执行计算和满意设备施加的种种束缚。比如限制内部存款和储蓄器总量为了进行它的图子集而在装备上所需的节点。

队列是1个有效的职能,它们允许图的不等部分异步执行,对数码进行入队和出队操作。

容器是用来存放在变量,默许的器皿是坚韧不拔的,直到进度终止才会清空,同时容器中的变量也足以共享给任何计算图使用。

详见的细节可查阅TensorFlow的牵线pdf

https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/45166.pdf

扩张效率

在tensorflow中比较主要的开始展览效用有,自动求导,子图执行,总括图控制流以及队列/容器

求导是机械学习中总括损失函数常用的演算,TensorFlow原生辅助自动求导运算,它是通过总结图中的拓展节点落到实处。

子图执行是由此控制张量的流向达成。

算算图控制流:是指控制计算图的节点极其运营的设备管理,它提供了高速执行计算和满意设备施加的各类束缚。比如限制内部存款和储蓄器总量为了实施它的图子集而在装备上所需的节点。

队列是3个卓有成效的功力,它们允许图的不等部分异步执行,对数码开始展览入队和出队操作。

容器是用来存放变量,默许的容器是持久的,直到进度终止才会清空,同时容器中的变量也得以共享给任何总计图使用。

详尽的底细可查阅TensorFlow的介绍pdf

https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/45166.pdf

相关文章