TensorFlow中的会话session用来执行定义好的计算。
会话拥有并管理TensorFlow程序运行时的所有资源。
所有计算完成之后需要关闭会话来帮助系统回收资源,否则就可能出现资源泄露的问题。
TensorFlow中使用会话的模式
-
需要明确调用会话生成函数和关闭会话函数
为了解决异常退出时资源释放的问题,TensorFlow可以通过Python的上下文管理器来使用会话。
with tf.Session() as sess:
sess.run(...)
- 当默认的会话被指定之后可以通过
tf.Tensor.eval函数
来计算一个张量的取值。
sess = tf.Session()
with sess.as_default():
print(result.eval())
TensorFlow提供了一种在交互式环境下直接构建默认会话的函数。使用tf.InteractiveSession函数
会自动将生成的会话注册为默认会话。
>>> sess = tf.InteractiveSession()
>>> print(result.eval())
>>> sess.close()
无论使用哪种方法都可以通过ConfigProto Protocol Buffer来配置需要生成的会话。通过CongfigProto可以配置类似并行的线程数、GPU分配策略、运算超时时间等参数。
config = tf.ConfigProto(allow_soft_placement=True, log_device_placement = True)
sess = tf.Session(config= config)
(最近更新:2019年04月12日)