1.tensorflow支持多个图在一个程序中构建的。
2.一个程序中会话同样可以构建多个,但一般不这么用
3.一个session一定属于某个图
如果无任何参数的情况下,会话构造器将启动默认图,如下:
with tf.Session(graph=tf.get_default_graph()) as sess: # graph参数的默认值是tf.get_default_graph(),即默认图
4.会话中应该关注的内容
1)不需要考虑图中间的运算,在运行的时候只需要关注最终结果对应的对象以及所需要的输入数据值
2) 只需要传递进去所需要得到的结果对象,会自动的根据图中的依赖关系触发所为相关的op操作的执行#如果op之间没有旅赖关示,tensor(底层会并行的执行op(如果有资源的话))------>自动进行。
上面说的意思是:不管图构建有多复杂,sess.run()时,你就把你想要的那个操作名写上就行(sess.run(op名)),不用管它前面的依赖关系,因为之前已经构建好图了,计算时,它会去触发所有相关的操作的。
5.一个图可以有多个会话
6.获取单个op操作的结果的方式(两个)
获取单个op操作的结果除了sess.run(op名)之外,还有一种是张量对象.eval()
,张量对象就是上面所说的op
with tf. Session() as sess2:
print (sess2)
# 获取张量c的结果: 通过Sessiont的run方法获取
print("sess2 run: {}".format(sess2.run(c)))
# 获取张量c的结果:通过张量对象的eval方法获取,和Session的ru方法一致
print("c.eval: {}". format(c.eval()))