tensorflow中Session的种类以及与计算图的对应关系
2017-12-01 21:54
465 查看
参考博客:http://blog.csdn.net/lujiandong1/article/details/53448012
http://blog.csdn.net/lyc_yongcai/article/details/73467480
Session的种类:
(1)普通的tf.Session()
(2)tf.InteractivesSession()
为了便于使用诸如 IPython之类的 Python 交互环境, 可以使用InteractiveSession 代替 Session 类, 使用 Tensor.eval()和 Operation.run()方法代替Session.run(). 这样可以避免使用一个变量来持有会话。
(3)tf.train.Supervisor().managed_session()
与上面两种启动图相比较来说,Supervisor() 帮助我们处理一些事情:
(a) 自动去 checkpoint 加载数据或者初始化数据
(b) 自动有一个 Saver ,可以用来保存 checkpoint( sv.saver.save(sess, save_path))
(c) 有一个 summary_computed 用来保存 Summary
因此我们可以省略了以下内容:
(a)手动初始化或者从 checkpoint 中加载数据
(b)不需要创建 Saver 类, 使用 sv 内部的就可以
(c)不需要创建 Summary_Writer()
tensorflow使用图来定义计算,在session中来执行图中定义的计算
tensorflow会为我们指定一张默认的图.然后sesssion会直接和该默认图相关联.
如果新建一个张图,那么就存在2张图,
首先看如下程序:
程序会报错,因为init = tf.global_variables_initializer()操作并没有被包含在tf.Graph()中,所以这个init操作是对于系统默认的计算图进行的,同时Session也是对应系统默认的计算图。
注:所有没被包含在我们新建图中的操作都默认存在系统创建的计算图中
以下2种修改方法:
1.将init操作和session都放到 with tf.Graph().as_default():中
2.为新建的Graph()对象创建一个名字,在Session()对象中加入该名字,此时Session不需要放在Graph()域中
错误:session既然已经成为graph的session,就不能执行除graph计算图之外的操作
import tensorflow as tf
graph = tf.Graph()
with graph.as_default():
a = tf.constant([5], name='a')
init = tf.global_variables_initializer()
with tf.Session(graph=graph) as sess:
sess.run(init)
print(sess.run(a))
http://blog.csdn.net/lyc_yongcai/article/details/73467480
Session的种类:
(1)普通的tf.Session()
(2)tf.InteractivesSession()
为了便于使用诸如 IPython之类的 Python 交互环境, 可以使用InteractiveSession 代替 Session 类, 使用 Tensor.eval()和 Operation.run()方法代替Session.run(). 这样可以避免使用一个变量来持有会话。
(3)tf.train.Supervisor().managed_session()
与上面两种启动图相比较来说,Supervisor() 帮助我们处理一些事情:
(a) 自动去 checkpoint 加载数据或者初始化数据
(b) 自动有一个 Saver ,可以用来保存 checkpoint( sv.saver.save(sess, save_path))
(c) 有一个 summary_computed 用来保存 Summary
因此我们可以省略了以下内容:
(a)手动初始化或者从 checkpoint 中加载数据
(b)不需要创建 Saver 类, 使用 sv 内部的就可以
(c)不需要创建 Summary_Writer()
tensorflow使用图来定义计算,在session中来执行图中定义的计算
tensorflow会为我们指定一张默认的图.然后sesssion会直接和该默认图相关联.
如果新建一个张图,那么就存在2张图,
首先看如下程序:
import tensorflow as tf with tf.Graph().as_default(): a = tf.constant([5], name='a') init = tf.global_variables_initializer() with tf.Session() as sess: sess.run(init) print(sess.run(a))
程序会报错,因为init = tf.global_variables_initializer()操作并没有被包含在tf.Graph()中,所以这个init操作是对于系统默认的计算图进行的,同时Session也是对应系统默认的计算图。
注:所有没被包含在我们新建图中的操作都默认存在系统创建的计算图中
以下2种修改方法:
1.将init操作和session都放到 with tf.Graph().as_default():中
import tensorflow as tf with tf.Graph().as_default(): a = tf.constant([5], name='a') init = tf.global_variables_initializer() with tf.Session() as sess: sess.run(init) print(sess.run(a))
2.为新建的Graph()对象创建一个名字,在Session()对象中加入该名字,此时Session不需要放在Graph()域中
import tensorflow as tf graph = tf.Graph() with graph.as_default(): a = tf.constant([5], name='a') init = tf.global_variables_initializer() with tf.Session(graph=graph) as sess: sess.run(init) print(sess.run(a))
错误:session既然已经成为graph的session,就不能执行除graph计算图之外的操作
import tensorflow as tf
graph = tf.Graph()
with graph.as_default():
a = tf.constant([5], name='a')
init = tf.global_variables_initializer()
with tf.Session(graph=graph) as sess:
sess.run(init)
print(sess.run(a))
相关文章推荐
- STM32内存大小与地址的对应关系以及计算方法
- client、server process以及session的对应关系
- 我的Android进阶之旅------>Android颜色值(#AARRGGBB)透明度百分比和十六进制对应关系以及计算方法
- Android颜色值(#AARRGGBB)透明度百分比和十六进制对应关系以及计算方法
- 我的Android进阶之旅------>Android颜色值(#AARRGGBB)透明度百分比和十六进制对应关系以及计算方法
- 外键约束 以及 数据库中实体的对应关系(1==1,1==n,n==n)
- MIT18.06线性代数课程笔记20:矩阵逆元计算、克里默法则 以及 行列式与volume、外积的关系
- C# 版本和.NET 版本以及VS版本的对应关系
- 大数据计算模式以及对应的典型系统
- UML类图元素以及在代码中的对应关系
- Java类型、Hibernate映射类型以及SQL类型之间的对应关系
- 数据库:多表之间的设计以及对应类之间的关系,与数据库的操作。
- 通过两个坐标系对应点计算转换关系
- 实习点滴(11)--TensorFlow快速计算“多分类问题”的混淆矩阵以及精确率、召回率、F1值、准确率
- 操作系统、.Net以及开发工具的版本对应关系
- 自定义Flash背景的相关设置方法以及其与目录下的文件的对应关系
- OpenGL中glVertex2f函数与gluOrtho2D的参数的对应关系,以及常见函数的对应坐标系
- Android SDK版本号与API级别的对应关系以及创建工程时选择API版本的注意事项
- (Tensorflow之二十三)BATCH_SIZE的计算方法以及取值方法
- tensorflow中f-measure,Precision / Recall / F1 score 以及Confusion matrix的计算