会话拥有并管理Tensorflow程序的所有资源,类似于操作系统中的进程控制块PCB。当所有计算完成之后需要关闭会话来帮助系统回收资源。否则会出现资源泄露的问题。
Tensorflow 中使用会话的模式一般有两种:
1:明确调用会话生成函数和关闭会话函数,
#创建一个会话
sess = tf.Session()
#使用这个创建好的会话结果,
sess.run(...)
#关闭会话使本次运行中使用的资源得以被释放
sess.close()
在执行这种模式的时候,明确需要调用Sesssion.close()函数来关闭会话并释放资源。当程序出现异常请况下,关闭函数可能就不能被执行,导致内存泄漏。Tensorflow 可以通过 Python 的上下文管理器来使用会话,给出一例:
#创建一个会话,用Python 中的上下文管理器来展示如何使用这种模式。
with tf.Session() as sess:
#使用这创建好的回话来计算自己关心的结果。
sess.run(....)
#不在需要再调用“Session.close()"函数来关闭会话,
#当上下文退出时,会话关闭,资源释放自动完成