tensorflow要旨概念和原理介绍

模型会话

用来进行社团好的计算图,同时会话拥有和保管程序运行时的享有资源。

当总计完毕之后,要求经过关闭会话来支援系统回收资源。

在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 是一个选用数据流图(data flow
graphs),用于数值统计的开源软件库。

节点(Nodes)在图中意味着数学操作,图中的线(edges)则意味在节点间互动关系的多维数据数组,即张量(tensor)。它灵活的架构让你可以在两种阳台上开展统计,例如台式电脑中的一个或四个CPU(或GPU),服务器,移动设备等等。

TensorFlow
最初由谷歌(Google)大脑小组(隶属于谷歌机器智能商量部门)的商讨员和工程师们付出出来,用于机器学习和纵深神经网络方面的钻研,但以此系统的通用性使其也可广泛用于其余计量领域。

tensorflow分布式原理

tensorflow的完毕分为了单机完毕和分布式落成。

单机的形式下,总计图会依照顺序间的依赖关系依次执行。

在分布式达成中,要求贯彻的是对client,master,worker
process,device管理。

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

master则负责管理所有woker的统计图执行。

worker由一个或五个统计设备device组成,如cpu,gpu等。

现实进度如下图:

图片 1

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

方针是根据代价模型,代价模型会审时度势每个节点的输入,输出的tensor大小以及所需的揣摸时间,然后分配每个节点的计量设备。

基本概念:数据流图

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

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

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

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

图片 2

更详实的介绍可以查看tensorflow华语社区:http://www.tensorfly.cn/

TensorFlow重如若由总括图、张量以及模型会话三个部分构成。

张量

在TensorFlow中,张量是对运算结果的引用,运算结果多以数组的花样储存,与numpy中数组不一致的是张量还蕴藏五个至关紧要性质名字、维度、类型。

张量的名字,是张量的唯一标识符,通过名字可以窥见张量是哪些总结出来的。比如“add:0”代表的是一个钱打二十四个结节点”add”的第二个出口结果。维度和花色与数组类似。

计算图

在编写程序时,大家都是一步一步计算的,每总括完一步就足以获得一个执行结果。

在TensorFlow中,首先需求营造一个计算图,然后按照计算图启动一个会话,在对话中成就变量赋值,总结,得到最后结果等操作。

故此,可以说TensorFlow是一个按照总括图设计的逻辑举办测算的编程系统。

TensorFlow的总结图可以分成八个部分:
(1)构造部分,包含计算流图;(2)执行部分,通过session执行图中的总结。

结构部分又分为两部分:
(1)创制源节点;(2)源节点输出传递给别的节点做运算。

TensorFlow默许图:TensorFlow python库中有一个默许图(default
graph)。节点构造器(op构造器)可以扩展节点。

扩充功效

在tensorflow中相比重大的开展成效有,自动求导,子图执行,统计图控制流以及队列/容器

求导是机械学习中总计损失函数常用的运算,TensorFlow原生支持自动求导运算,它是经过统计图中的拓展节点落实。

子图执行是通过控制张量的流向已毕。

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

队列是一个实用的效果,它们允许图的例外部分异步执行,对数码举行入队和出队操作。

容器是用来存放变量,默许的器皿是从头到尾的,直到进度终止才会清空,同时容器中的变量也可以共享给其余总括图使用。

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

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