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中string模块各属性以及函数的用法介绍
May 30 Python
Python读写txt文本文件的操作方法全解析
Jun 26 Python
基于asyncio 异步协程框架实现收集B站直播弹幕
Sep 11 Python
用python实现的线程池实例代码
Jan 06 Python
python将txt等文件中的数据读为numpy数组的方法
Dec 22 Python
python NumPy ndarray二维数组 按照行列求平均实例
Nov 26 Python
pytorch模型预测结果与ndarray互转方式
Jan 15 Python
利用python中的matplotlib打印混淆矩阵实例
Jun 16 Python
python3爬虫GIL修改多线程实例讲解
Nov 24 Python
termux中matplotlib无法显示中文问题的解决方法
Jan 11 Python
20行代码教你用python给证件照换底色的方法示例
Feb 05 Python
分位数回归模型quantile regeression应用详解及示例教程
Nov 02 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 面向对象程序设计(oop)学习笔记(三) - 单例模式和工厂模式
2014/06/12 PHP
PHP编写文件多服务器同步程序
2016/07/02 PHP
让jQuery与其他JavaScript库并存避免冲突的方法
2013/12/23 Javascript
JS替换字符串中字符即替换全部而不是第一个
2014/06/04 Javascript
javascript在当前窗口关闭前检测窗口是否关闭
2014/09/29 Javascript
jQuery中map()方法用法实例
2015/01/06 Javascript
javaScript基础语法介绍
2015/02/28 Javascript
使用纯javascript实现放大镜效果
2015/03/18 Javascript
基于JavaScript代码实现兼容各浏览器的设为首页和加入收藏
2016/01/07 Javascript
JavaScript拖拽、碰撞、重力及弹性运动实例分析
2016/01/08 Javascript
Bootstrap在线电子商务网站实战项目5
2016/10/14 Javascript
Angular2使用Angular-CLI快速搭建工程(二)
2017/05/21 Javascript
jQuery 中msgTips 顶部弹窗效果实现代码
2017/08/14 jQuery
NodeJS爬虫实例之糗事百科
2017/12/14 NodeJs
尝试自己动手用react来写一个分页组件(小结)
2018/02/09 Javascript
React中的refs的使用教程
2018/02/13 Javascript
vue中$set的使用(结合在实际应用中遇到的坑)
2018/07/10 Javascript
解决layui中table异步数据请求不支持自定义返回数据格式的问题
2018/08/19 Javascript
解决axios会发送两次请求,有个OPTIONS请求的问题
2018/10/25 Javascript
Python的批量远程管理和部署工具Fabric用法实例
2015/01/23 Python
python链接Oracle数据库的方法
2015/06/28 Python
python 实现批量xls文件转csv文件的方法
2018/10/23 Python
Python学习之路安装pycharm的教程详解
2020/06/17 Python
深入解读CSS3中transform变换模型的渲染
2016/05/27 HTML / CSS
Android本地应用打开方法——通过html5写连接
2016/03/11 HTML / CSS
吃透移动端 1px的具体用法
2019/12/16 HTML / CSS
华为消费者德国官方网站:HUAWEI德国
2020/11/03 全球购物
新闻专业大学生找工作的自我评价
2013/10/30 职场文书
市场营销专业个人求职信范文
2013/12/14 职场文书
三八节主持词
2014/03/17 职场文书
公开服务承诺制度
2014/03/26 职场文书
2014年社区教育工作总结
2014/12/02 职场文书
二审答辩状范文
2015/05/22 职场文书
2016年小学优秀班主任事迹材料
2016/02/29 职场文书
使用HttpSessionListener监听器实战
2022/03/17 Java/Android
Android自定义ScrollView实现阻尼回弹
2022/04/01 Java/Android