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之for循环语句
Oct 02 Python
python中利用xml.dom模块解析xml的方法教程
May 24 Python
利用python获取当前日期前后N天或N月日期的方法示例
Jul 30 Python
Python与人工神经网络:使用神经网络识别手写图像介绍
Dec 19 Python
python Web开发你要理解的WSGI & uwsgi详解
Aug 01 Python
Pyqt5 实现跳转界面并关闭当前界面的方法
Jun 19 Python
Python学习笔记之函数的参数和返回值的使用
Nov 20 Python
python实现两个字典合并,两个list合并
Dec 02 Python
Python unittest单元测试openpyxl实现过程解析
May 27 Python
为什么python比较流行
Jun 19 Python
python模拟点击玩游戏的实例讲解
Nov 26 Python
详解python中的三种命令行模块(sys.argv,argparse,click)
Dec 15 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
php存储过程调用实例代码
2013/02/03 PHP
php操作XML、读取数据和写入数据的实现代码
2014/08/15 PHP
PHP实现基于面向对象的mysqli扩展库增删改查操作工具类
2017/07/18 PHP
Alliance vs AM BO3 第二场2.13
2021/03/10 DOTA
来自chinaz的ajax获取评论代码
2008/05/03 Javascript
关于javascript DOM事件模型的两件事
2010/07/22 Javascript
固定表格行列(expression)在IE下适用
2013/07/25 Javascript
用js传递value默认值的示例代码
2014/09/11 Javascript
Javascript基础教程之数据类型 (布尔型 Boolean)
2015/01/18 Javascript
学习vue.js计算属性
2016/12/03 Javascript
[Bootstrap-插件使用]Jcrop+fileinput组合实现头像上传功能实例代码
2016/12/20 Javascript
Jquery uploadify 多余的Get请求(404错误)的解决方法
2017/01/26 Javascript
详谈jQuery中使用attr(), prop(), val()获取value的异同
2017/04/25 jQuery
Javascript实现页面滚动时导航智能定位
2017/05/06 Javascript
vue 基于element-ui 分页组件封装的实例代码
2018/12/10 Javascript
js实现图片3D轮播效果
2019/09/21 Javascript
vue-resource:jsonp请求百度搜索的接口示例
2019/11/09 Javascript
微信小程序 接入腾讯地图的两种写法
2021/01/12 Javascript
Python学习笔记之os模块使用总结
2014/11/03 Python
python 与GO中操作slice,list的方式实例代码
2017/03/20 Python
python 随机数使用方法,推导以及字符串,双色球小程序实例
2017/09/12 Python
在python tkinter中Canvas实现进度条显示的方法
2019/06/14 Python
python turtle库画一个方格和圆实例
2019/06/27 Python
python 寻找离散序列极值点的方法
2019/07/10 Python
基于Python安装pyecharts所遇的问题及解决方法
2019/08/12 Python
Python爬虫:将headers请求头字符串转为字典的方法
2019/08/21 Python
Python3.6 中的pyinstaller安装和使用教程
2020/03/16 Python
美国领先的家居装饰和礼品商店:Kirkland’s
2017/01/30 全球购物
斯洛伐克电子产品购物网站:DATART
2020/04/05 全球购物
个人找工作自荐信格式
2013/09/21 职场文书
财经学院自荐信范文
2014/02/02 职场文书
临床医学生职业规划书范文
2014/10/25 职场文书
2016新年慰问信范文
2015/03/25 职场文书
2015年度物业公司工作总结
2015/04/27 职场文书
2015年人民调解工作总结
2015/05/18 职场文书
sql注入报错之注入原理实例解析
2022/06/10 MySQL