tensorflow的计算图总结


Posted in Python onJanuary 12, 2020

计算图

在 TensorFlow 中用计算图来表示计算任务。 计算图,是一种有向图,用来定义计算的结构,实际上就是一系列的函数的组合。 用图的方式,用户通过用一些简单的容易理解的数学函数组件,就可以建立一个复杂的运算

在 TensorFlow 使用图,分为两步:建立计算图 和 执行图

图,在形式上由结点 Nodes 和边 Edges 组成。 - Nodes,用圆圈表示,代表一些对数据进行的计算或者操作(Operation)。 - Edges,用箭头表示,是操作之间传递的实际值(Tensor)

建立图

graph = tf.Graph()

访问上下文管理器

with graph.as_default():

用 with 表示我们用 context manager 告诉 TensorFlow 我们要向某个具体的 graph 添加 Op 了

执行图图必须在会话(Session)里被启动,会话(Session)将图的 op 分发到 CPU 或 GPU 之类的设备上,同时提供执行 op 的方法,这些方法执行后,将产生的张量(tensor)返回

## 开启session

sess = tf.Session()`

一旦开启了 Session,就可以用 run() 来计算想要的 Tensor 的值

用完会话,记得关掉

sess.close()

Fetches

fetches是session.run()的一个参数,它可以接收任何一个我们想要执行的op或者Tensor,或者他们对应的list结构。

  • 如果是tensor,那么session.run()输出的就是一个Numpy 数组
  • 如果是Op,那么session.run()输出的就是None

比如:sess.run(b)就是告诉Session要把计算b所需要的结点都找到按顺序执行并且输出结果。

全局变量初始化

tf.global_variables_initializer()

表示将所有定义的Variable变量都准备好,以便于后续使用,这个Op也可以传给给session.run.比如:

init = tf.global_variables_initializer()
…
sess.run(init)

张量Tensor和OP

在tensorflow中使用tensor来表示所有的数据结构,计算图中操作Op结点之间传递的都是Tensor

  • 定义tensor时可以直接使用numpy传递给Op结点,因为tensorflow的Op可以将python的数据类型转化为tensor包括numbers,booleans,strings或者list。
  • 图中的任何结点都叫做Operation简称:Op
  • 每个Op的输出会被传递到其他Op或者sess.run()

Variable

Variable,变量是维护图执行过程中的状态信息的,需要它来保持和更新参数数值,是需要动态调整的。

  • Tensor 和Operation都是一成不变的,而Variable是可以随着时间改变的
  • Variables可以用在任何使用tensor的Op中,它当前的值就会被传递给使用它的Op
  • Variable通常的初始值是一些很大的0,1或者随机值tensor,或者内置op:tf.zeros(),tf.ones()等
  • Variable在graph中,状态由session管理,也是在session中进行初始化,session可以追踪variable的当前值是多少。
  • session可以只初始化一部分variable
  • 使用tf.variables_initializer,传入初始化变量列表
  • variable的值是可以被改变的
  • 比如使用variable.assign(variable),或者variable.assign_add(1)
  • 每个session维护独立的variable变量值,同一个variable不同的session值可以是不同的。
  • 当各种Optimizer优化器训练机器学习模型时,variable就会随之改变,当使用variable中的trainable=False属性可以不被Optimizer改变。

name_scopes

  • name_sopes可以用来管理图,可以把一组Op放到一个组块中

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中运行并行任务技巧
Feb 26 Python
Python读写unicode文件的方法
Jul 10 Python
由浅入深讲解python中的yield与generator
Apr 05 Python
Python中序列的修改、散列与切片详解
Aug 27 Python
Linux-ubuntu16.04 Python3.5配置OpenCV3.2的方法
Apr 02 Python
详解TensorFlow查看ckpt中变量的几种方法
Jun 19 Python
Django Python 获取请求头信息Content-Range的方法
Aug 06 Python
Python 私有化操作实例分析
Nov 21 Python
Python scrapy增量爬取实例及实现过程解析
Dec 24 Python
使用Tensorflow-GPU禁用GPU设置(CPU与GPU速度对比)
Jun 30 Python
pandas将list数据拆分成行或列的实现
Dec 13 Python
python如何读取.mtx文件
Apr 22 Python
python利用JMeter测试Tornado的多线程
Jan 12 #Python
Django 批量插入数据的实现方法
Jan 12 #Python
python处理RSTP视频流过程解析
Jan 11 #Python
pyftplib中文乱码问题解决方案
Jan 11 #Python
python实现实时视频流播放代码实例
Jan 11 #Python
python3下pygame如何实现显示中文
Jan 11 #Python
Pytorch 实现sobel算子的卷积操作详解
Jan 10 #Python
You might like
德生S2000收音机更换“钕铁硼”全频扬声器
2021/03/02 无线电
php生成图形验证码几种方法小结
2013/08/15 PHP
php将mysql数据库整库导出生成sql文件的具体实现
2014/01/08 PHP
PHP中实现获取IP和地理位置类分享
2015/02/10 PHP
php实现的SSO单点登录系统接入功能示例分析
2016/10/12 PHP
Javascript的并行运算实现代码
2010/11/19 Javascript
JQuery datepicker 使用方法
2011/05/20 Javascript
JQuery 返回布尔值Is()条件判断方法代码
2012/05/14 Javascript
jquery实现带单选按钮的表格行选中时高亮显示
2013/08/01 Javascript
javascript匿名函数应用示例介绍
2014/03/07 Javascript
js+cookies实现悬浮购物车的方法
2015/05/25 Javascript
javascript排序函数实现数字排序
2015/06/26 Javascript
Express的路由详解
2015/12/10 Javascript
js弹出窗口返回值的简单实例
2016/05/28 Javascript
微信小程序 icon组件详细及实例代码
2016/10/25 Javascript
Javascript之面向对象--接口
2016/12/02 Javascript
基于BootStrap实现简洁注册界面
2017/07/20 Javascript
JavaScript创建对象的常用方式总结
2018/08/10 Javascript
基于leaflet.js实现修改地图主题样式的流程分析
2020/05/15 Javascript
解决vue addRoutes不生效问题
2020/08/04 Javascript
基于Ionic3实现选项卡切换并重新加载echarts
2020/09/24 Javascript
[31:00]2014 DOTA2华西杯精英邀请赛5 24 NewBee VS iG
2014/05/25 DOTA
python随机取list中的元素方法
2018/04/08 Python
对python中的for循环和range内置函数详解
2018/04/17 Python
python 获取图片分辨率的方法
2019/01/08 Python
python计算无向图节点度的实例代码
2019/11/22 Python
python+gdal+遥感图像拼接(mosaic)的实例
2020/03/10 Python
html5 Canvas画图教程(1)—画图的基本常识
2013/01/09 HTML / CSS
处理textarea中的换行和空格
2019/12/12 HTML / CSS
Evisu官方网站:日本牛仔品牌,时尚街头设计风格
2016/12/30 全球购物
英国时尚运动品牌的合集:The Sports Edit
2017/12/20 全球购物
通信研究生自荐信
2014/02/01 职场文书
普罗米修斯教学反思
2014/02/06 职场文书
客服部班长工作责任制
2014/02/25 职场文书
乡镇个人对照检查材料
2014/08/22 职场文书
python通过函数名调用函数的几种方法总结
2021/06/07 Python