tensorflow宗旨概念和原理介绍

关于 TensorFlow

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

节点(Nodes)在图中象征数学操作,图中的线(edges)则象征在节点间互相关联的多维数据数组,即张量(tensor)。它灵活的架构令你能够在二种平台上举办总括,举例台式计算机中的三个或四个CPU(或GPU),服务器,移动器械等等。

TensorFlow
最早由Google大脑小组(从属于Google机器智能研讨机关)的商量员和技术员们付出出来,用于机器学习和纵深神经互联网方面包车型地铁商讨,但这一个系统的通用性使其也可广泛用于另外计量领域。

着力概念:数据流图

数量流图用“结点”(nodes)和“线”(edges)的有向图来呈报数学总结。

“节点” 日常用来表示施加的数学操作,但也得以代表数据输入(feed
in)的起源/输出(push out)的顶点,或许是读取/写入悠久变量(persistent
variable)的顶峰。

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

张量从图中流过的直观图疑似那几个工具取名称为“Tensorflow”的因由。一旦输入端的全数张量计划好,节点将被分配到各类总括设备完结异步并行地执行运算。

图片 1

更详细的介绍能够查阅tensorflow国语社区:http://www.tensorfly.cn/

TensorFlow首假如由总括图、张量以致模型会话多个部分构成。

计算图

在编写程序时,我们都是一步一步计算的,每总括完一步就能够得到三个实施结果。

在TensorFlow中,首先须求营造二个计算图,然后依据总括图运营二个对话,在对话中成功变量赋值,计算,获得终极结出等操作。

之所以,能够说TensorFlow是一个依照计算图设计的逻辑举行测算的编制程序系统。

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

组织部分又分为两有的:
(1)制造源节点;(2)源节点输出传递给此外节点做运算。

TensorFlow默许图:TensorFlow python库中有三个私下认可图(default
graph)。节点构造器(op构造器)能够扩充节点。

张量

在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布满式原理

tensorflow的兑现分为了单机完成和布满式实现。

单机的形式下,总结图会遵照顺序间的依据关系依次试行。

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

client约等于客商端,他通过session的接口与master和worker相连。

master则负担管理全数woker的计算图施行。

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

现实经过如下图:

图片 2

在遍布式落成中,tensorflow有一套特地的节点分配政策。

战术是基于代价模型,代价模型会同审查几度势每一种节点的输入,输出的tensor大小乃至所需的测算时间,然后分配每一种节点的测算设备。

扩展功用

在tensorflow中比较首要的进展功效有,自动求导,子图实践,计算图调节流乃至队列/容器

求导是机器学习中总计损失函数常用的演算,TensorFlow原生协助自动求导运算,它是透过总计图中的扩充节点落到实处。

子图实践是经过调整张量的流向落成。

计量图调节流:是指调节总结图的节点极度运行的设备管理,它提供了高速推行计算和满意设备施加的各个束缚。比方限制内存总数为了推行它的图子集而在道具上所需的节点。

队列是一个立见成效的意义,它们允许图的不等部分异步施行,对数码开展入队和出队操作。

容器是用来存放变量,暗许的容器是长久的,直到进程终止才会清空,同一时候容器中的变量也足以分享给别的计算图使用。

详见的内部原因可查阅TensorFlow的介绍pdf

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

相关文章