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编写一个在Linux下实现截图分享的脚本的教程
Apr 24 Python
python友情链接检查方法
Jul 08 Python
python绘制条形图方法代码详解
Dec 19 Python
基于DATAFRAME中元素的读取与修改方法
Jun 08 Python
Python Cookie 读取和保存方法
Dec 28 Python
Python面向对象程序设计OOP深入分析【构造函数,组合类,工具类等】
Jan 05 Python
Python中注释(多行注释和单行注释)的用法实例
Aug 28 Python
使用OpCode绕过Python沙箱的方法详解
Sep 03 Python
Python中__repr__和__str__区别详解
Nov 07 Python
Python使用plt.boxplot() 参数绘制箱线图
Jun 04 Python
Python通过zookeeper实现分布式服务代码解析
Jul 22 Python
Python读取xlsx数据生成图标代码实例
Aug 12 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实现格式化多行文本为Js可用格式
2015/04/15 PHP
Yii数据读取与跳转参数传递用法实例分析
2016/07/12 PHP
laravel 配置路由 api和web定义的路由的区别详解
2019/09/03 PHP
TNC vs BOOM BO3 第三场2.13
2021/03/10 DOTA
用javascript来实现动画导航效果的代码
2007/12/16 Javascript
JavaScript更改class和id的方法
2008/10/10 Javascript
js中格式化日期时间型数据函数代码
2010/11/08 Javascript
js字符串转成JSON
2013/11/07 Javascript
Jquery EasyUI中弹出确认对话框以及加载效果示例代码
2014/02/13 Javascript
JavaScript实现列表分页功能特效
2015/05/15 Javascript
JS基于MSClass和setInterval实现ajax定时采集信息并滚动显示的方法
2016/04/18 Javascript
javascript如何定义对象数组
2016/06/07 Javascript
AngularJS入门教程之Select(选择框)详解
2016/07/27 Javascript
jQuery实现的滑块滑动导航效果示例
2018/06/04 jQuery
js利用递归与promise 按顺序请求数据的方法
2019/08/30 Javascript
vue下canvas裁剪图片实例讲解
2020/04/16 Javascript
vue+openlayers绘制省市边界线
2020/12/24 Vue.js
[02:32]“虐狗”镜头慎点 2016国际邀请赛中国区预选赛现场玩家采访
2016/06/28 DOTA
Python里隐藏的“禅”
2014/06/16 Python
python在linux系统下获取系统内存使用情况的方法
2015/05/11 Python
Python切片操作实例分析
2018/03/16 Python
Python查找第n个子串的技巧分享
2018/06/27 Python
Python设计模式之职责链模式原理与用法实例分析
2019/01/11 Python
Django admin禁用编辑链接和添加删除操作详解
2019/11/15 Python
python运用pygame库实现双人弹球小游戏
2019/11/25 Python
细说CSS3中的选择符
2008/10/17 HTML / CSS
纯css3实现的动画按钮的实例教程
2014/11/17 HTML / CSS
用CSS3写的模仿iPhone中的返回按钮
2015/04/04 HTML / CSS
Solid & Striped官网:美国泳装品牌
2019/06/19 全球购物
Mamaearth官方网站:印度母婴护理产品公司
2019/10/06 全球购物
创建索引时需要注意的事项
2013/05/13 面试题
财务会计专业推荐信
2013/11/30 职场文书
五年级语文教学反思
2014/01/30 职场文书
初中班主任评语大全
2014/04/24 职场文书
幼儿园父亲节活动总结
2015/02/12 职场文书
会计求职简历自我评价
2015/03/10 职场文书