学习笔记TF005:Graph对象、Session对象、占位符

创建Graph对象,.Graph(),无需接收任何参数。.as_default()访问上下文管理器,添加Op。加载TensorFlow库时,自动创建一个Graph对象作为默认数据流图,Op、Tensor对象自动放置在默认数据流图。多个不依赖模型需要创建多个Graph对象,节点添加到正确的数据流图。不要将默认数据流图和用户创建数据流图混合使用,既存在自定义数据流图,又存在默认数据流图时,应把各自的Op写在with .as_default里。可以从其他TensorFlow脚本加载已定义模型,用Graph.as_graph_def()、tf.import_graph_def()赋给Graph对象。

TensorFlow Session负责执行数据流图。.Session()构造方法有3个可选参数。target指定执行引擎,默认空字符串,分布式中用于连接不同tf.train.Server实例。graph加载Graph对象,默认None,默认当前数据流图,区分多个数据流图时的执行,不在with语句块内创建Session对象。config指定Session对象配置选项。
.run()方法接收一个参数fetches指定执行对象,任意数据流图元素(Op 或Tensor对象),Tensor对象输出NumPy数组,Op对象输出None。fetches为列表,输出元素对应值列表。三个可选参数feed_dict、options、run_metadata。feed_dict覆盖数据流图Tensor对象值,输入Python字典对象,字典键为被覆盖Tensor对象句柄,值为数字、字符串、列表、NumPy数组,类型与键相同,用于虚构值测试或指定输入值。Session对象找到所需全部节点,顺序执行节点,输出。
最后需要调用.close()方法释放资源。Session对象作为上下文管理器,离开作用域自动关闭。.as_default()作为作为上下文管理器,作为with语句块默认Session对象,必须手工关闭Session对象。
InteractiveSession运行时作为默认会话。尽量不要用。

.placeholder Op创建占位符,利用占位节点添加输入,以便数据流图变换、数值复用。dtype参数为数据类型,必须指定。shape参数为张量维数长度,默认为None,可选。name参数为标识符,可选。Session.run()中feed_dict参数,占位符输出句柄为键,传入Tensor对象为值。必须在feed_dict为计算节点每个依赖占位符包含一个健值对。placeholder的值无法计算。

import tensorflow as tf
import numpy as np
in_default_graph = tf.add(1, 2)#放置在默认数据流图
g1 = tf.Graph()#创建数据流图
g2 = tf.Graph()
default_graph = tf.get_default_graph()#获取默认数据流图句柄
with g1.as_default():#放置在g数据流图
    in_graph_g1 = tf.multiply(2, 3)#此Op将添加到Graph对象g1中
with g2.as_default():#放置在g数据流图
    in_graph_g2 = tf.div(4, 2)#此Op将添加到Graph对象g2中
with default_graph.as_default():#放置在默认数据流图
    also_in_default_graph1 = tf.subtract(5, 2)#此Op将添加到默认数据流图中
    also_in_default_graph2 = tf.multiply(also_in_default_graph1, 2)#此Op将添加到默认数据流图中
    replace_dict = {also_in_default_graph1: 15}
    also_in_default_graph3 = tf.placeholder(tf.int32, shape=[2], name="my_input")#创建指定长度、数据类型的占位tensor
    also_in_default_graph4 = tf.reduce_prod(also_in_default_graph3, name="prod_also_in_default_graph4")#占位tensor使用
    also_in_default_graph5 = tf.reduce_sum(also_in_default_graph3, name="sum_also_in_default_graph4")#占位tensor使用
    also_in_default_graph6 = tf.add(also_in_default_graph4,also_in_default_graph5, name="add_also_in_default_graph6")#占位tensor使用
#with tf.Session(graph=g1) as sess:#离开作用域后自动关闭
#    sess.run(in_graph_g1)
sess = tf.Session(graph=tf.get_default_graph())#以默认数据流图创建Session对象
input_dict = {also_in_default_graph3: np.array([5, 3], dtype=np.int32)}#创建传给feed_dict的字典
#sess.run([also_in_default_graph1, also_in_default_graph2], feed_dict=replace_dict)#执行Session对象,将replace_dict赋给feed_dict
sess.run(also_in_default_graph6, feed_dict=input_dict)#将input_dict的值传给占符节点并执行
#with sess.as_default():
#    also_in_default_graph1.eval()
#sess = tf.Session(graph=g1)
#sess.run(in_graph_g1)
#sess = tf.Session(graph=g2)
#sess.run(in_graph_g2)
writer = tf.summary.FileWriter('./my_graph', sess.graph)
writer.close()
sess.close()#关闭Session对象,释放资源
graph?run=-3.png

参考资料:
《面向机器智能的TensorFlow实践》

欢迎加我微信交流:qingxingfengzi

我的微信公众号:qingxingfengzigz

我老婆张幸清的微信公众号:qingqingfeifangz

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343

推荐阅读更多精彩内容

  • 1. 介绍 首先让我们来看看TensorFlow! 但是在我们开始之前,我们先来看看Python API中的Ten...
    JasonJe阅读 11,719评论 1 32
  • 呆兔今天心情不好!不开心,画的也很丑!
    神奇的马马阅读 304评论 0 0
  • 哄小轰阅读 261评论 0 0
  • 01. 好友和我说起一个“怪现象”:大学时的贫困生在毕业之后往往不喜欢再和以前的同学联系,尤其是贫困生与贫困生之间...
    江北禾公子阅读 1,804评论 22 33
  • 用植物为衣衫染色是人类最柔软的发明罢。相传早在黄帝时期,人们便知晓用草木之汁将面料着色,制成斑斓的衣物,谓...
    小跳Lee阅读 323评论 0 2