TensorFlow运行模型(会话)
1 会话经典模式
1.1 会话经典模式1
代码如下:
#会话经典模式1
#定义计算图
tens1 = tf.constant([1,2,3])
#创建一个会话
sess = tf.Session()
#使用这个创建好的会话来得到关心的运算的结果。比如可以调用sess.run(result)
#得到张量result的取值
print(sess.run(tens1))
#关闭会话使得本次运行中使用到的资源可以被释放
sess.close()
tens1 = tf.constant([1,2,3])
sess = tf.Session()
try:
print(sess.run(tens1))
except:
print("Exception!")
finally:
sess.close()
1.2会话经典模式2
代码如下:
#会话经典模式2
node1 = tf.constant(3.0,tf.float32,name="node1")
node2 = tf.constant(4.0,tf.float32,name="node2")
result = tf.add(node1,node2)
#创建一个会话,并通过Python的上下文管理器来管理这个会话
with tf.Session() as sess:
#使用这创建好的会话来计算关心的结果
print(sess.run(result))
#不需要再调用Session.close()函数来关闭会话
#当上下文退出时会话关闭和资源释放也自动完成了
2 指定默认会话
2.1 一般默认会话
代码如下:
#指定默认的会话,计算一个张量的值
node1 = tf.constant(3.0,tf.float32,name="node1")
node2 = tf.constant(4.0,tf.float32,name="node2")
result = tf.add(node1,node2)
sess = tf.Session()
with sess.as_default():
print(result.eval())
#下面两个命令有相同的功能
print(sess.run(result))
print(result.eval(session=sess))
2.2 交互式环境下设置默认会话
代码如下:
#在交互式环境下,Python脚本或者jupyter编辑器下,通过设置默认会话来获取张量的取值
#tf.InteractiveSession()使用这个函数会将自动生成的会话注册为默认会话
node1 = tf.constant(3.0,tf.float32,name="node1")
node2 = tf.constant(4.0,tf.float32,name="node2")
result = tf.add(node1,node2)
sess = tf.InteractiveSession()
print(result.eval())
sess.close()