tensorflow中Session的种类以及与计算图的对应关系

来源:互联网 发布:java web项目源码下载 编辑:程序博客网 时间:2024/06/17 03:44

参考博客: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张图,

首先看如下程序:

import tensorflow as tfwith 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 tfwith 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 tfgraph = 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 tfgraph = 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))




阅读全文
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 小学二年级成绩不好怎么办 初中孩子上课注意力不集中怎么办 学生打架家长争吵老师怎么办 我和我老婆感情危机怎么办 数学作业做得慢怎么办 待转弯区变红灯怎么办 大班健康发生火灾怎么办教案 数字化审图图纸提交不了怎么办 监狱建筑师没电了怎么办 ios短信提示不弹出怎么办 ie游览器图标删了怎么办 电脑上ie卸载了怎么办 打开cad浏览器闪退怎么办 dnf进游戏闪退怎么办 苹果8出现闪退怎么办 手机浏览器老是自动打开软件怎么办 打开手机浏览器为什么是英文怎么办 ie浏览器删除掉了怎么办 手机360浏览器卸载不掉怎么办 大学素质拓展学分不够怎么办 专升本学分不够怎么办 电脑连接无线网络网关禁用怎么办 背部毛孔粗大有黑头怎么办 毛孔变粗大长痘怎么办 皮肤粗糙暗黄毛孔大怎么办 毛孔粗大还有痘印怎么办 高一的不爱上数学怎么办 监狱系统需要体测怀孕怎么办 货运从业资格证年审过期了怎么办 科三线路记不住怎么办? 汽车大灯里面起雾水怎么办 二级重伤对方法庭拒绝赔偿怎么办? 在麦当劳工作收到假钞怎么办 东西湖小学分配太远怎么办 农行k令过期了怎么办 穿军训的鞋捂坏了怎么办 联通手机号销户话费怎么办 建行员工所持有的原始股怎么办 孕妇喝了午时茶怎么办 苹果6id被锁了怎么办 苹果手机app密码忘了怎么办