3.3 TensorFlow运行模型 ------- 会话
会话拥有并管理TensorFlow程序运行时的所有资源。当计算完成后需要关闭会话来帮助系统回收资源,否则就可能出现资源泄漏的问题。
TensorFlow中使用的会话模式一般有梁总,第一种模式需要明确调用会话生成函数和关闭会话函数,代码流程如下:
#创建一个会话 sess = tf.Session() #使用这个创建好的会话得到关心的运算的结果 sess.run(....) #关闭会话使得本次运行中使用到的资源得以释放 sess.close()
上述方法计算完成时,需要明确调用Session.close函数来关闭会话并释放资源。但是,当程序因为异常退出时,关闭会话的函数可能不被执行从而导致内存泄漏。为了解决异常退出时资源释放的问题,TensorFlow可以通过Python的上下文管理器来使用会话。以下所示:
#创建一个会话,并通过Python中的上下文管理器来管理这个会话 with tf.Session() as sess: sess.run(...) #不需要盗用Session.close()函数来关闭会话 #当上下文退出时会话关闭资源释放自动完成