3.6 Session 会话
Last updated
Was this helpful?
Last updated
Was this helpful?
会话拥有并管理TensorFlow运行时所有的物理资源(例如GPU和网络连接),所以当所有计算完成之后需要关闭会话帮助系统回收资源,否则容易发生资源的泄露。以下提供三种常见的会话模式来避免资源的泄露。
1.4.1 会话模式1
如图7明确调用 Session.close()函数来关闭会话并释放资源,这样比较简单,但是当程序异常退出时,关闭会话函数可能不会被执行,从而导致资源泄露,该方法一般不推荐。
1.4.2 会话模式2
如图8所示,会话模式2使用try … except … finally…语句可以确保关闭会话使本次运行中所使用到的资源被释放。
1.4.3 会话模式3
会话模式3使用Python的上下文管理器来管理这个会话,保证在程序执行完后,推出上下文便可关闭会话和释放资源。
TensorFlow不会自动生成默认的会话,需要手动指定,当默认的会话指定之后可以通过 tf.Tensor.eval函数来计算一个张量的取值。
在交互式环境下,也就是Python脚本或者Jupyter Notebook编辑器下,通过设置默认的对话来获取张量的取值更加方便,使用tf.InteractiveSession这个函数会自动将生成的会话注册为默认会话。