Tensorflow之会话机制
2018-01-04 10:05
92 查看
一、为什么要用Session ?
Session 是tensorflow中的重要的会话机制,因为tensorflow中的计算图的计算必须通过session才得以运行。
比如有两个矩阵a和b,如果要计算它们的 乘积c节点c=a*b,那么这个c节点必须通过会话才能运行(sess.run(c))
二、Session的几种使用模式
1.手动关闭会话
#创建一个会话
sess=tf.Session()
#运行某个节点
sess.run()
#关闭会话
sess.close()
缺点:每次必须关闭会话才能使资源得到释放,如果程序因为异常退出,sess.close()可能不被执行而导致资源泄漏。
2.上下文管理器
with tf.Session() as less:
sess.run()
#当上下文退出时自动关闭会话和释放资源
3.交互环境下(如Python脚本或IPython编辑器)
sess=tf.InteractiveSession()
print(result.eval())
sess.close()
4.通过ConfigProto配置会话
#allow_soft_placement是布尔型的,当它为true且满足a.该运算无法在gpu上运行/b.没有gpu/c.运算输入包含对cpu结果的引用,的时候,可以将gpu上的运算放到cpu上运行。log_device_placement记录了每个节点被安排在了哪一个设备上以方便调试。
config=tf.ConfigProto(allow_soft_placement=True,log_device_placement=True)
Session 是tensorflow中的重要的会话机制,因为tensorflow中的计算图的计算必须通过session才得以运行。
比如有两个矩阵a和b,如果要计算它们的 乘积c节点c=a*b,那么这个c节点必须通过会话才能运行(sess.run(c))
二、Session的几种使用模式
1.手动关闭会话
#创建一个会话
sess=tf.Session()
#运行某个节点
sess.run()
#关闭会话
sess.close()
缺点:每次必须关闭会话才能使资源得到释放,如果程序因为异常退出,sess.close()可能不被执行而导致资源泄漏。
2.上下文管理器
with tf.Session() as less:
sess.run()
#当上下文退出时自动关闭会话和释放资源
3.交互环境下(如Python脚本或IPython编辑器)
sess=tf.InteractiveSession()
print(result.eval())
sess.close()
4.通过ConfigProto配置会话
#allow_soft_placement是布尔型的,当它为true且满足a.该运算无法在gpu上运行/b.没有gpu/c.运算输入包含对cpu结果的引用,的时候,可以将gpu上的运算放到cpu上运行。log_device_placement记录了每个节点被安排在了哪一个设备上以方便调试。
config=tf.ConfigProto(allow_soft_placement=True,log_device_placement=True)
相关文章推荐
- Session会话机制(百度百科)
- JSP会话管理机制
- 状态检测和会话机制补遗
- Tensorflow学习(一) 图和会话
- 13 Tensorflow机制(翻译)
- TensorFlow会话的配置项
- tensorflow学习(4):保存模型Saver.save()的参数命名机制以及restore并创建手写字体识别引擎
- JSPServlet会话跟踪机制
- JavaWeb会话与状态管理之Cookie机制
- Java Web会话机制,Cookie和Session详解
- php中会话机制相关问题
- 二,PHP会话机制---session的基本使用
- (张龙讲学)java web学习---session(会话机制)的使用
- tensorflow的作用机制
- ssl运行机制中,为什么不直接采用pms作为会话密钥
- 深入剖析Tomcat会话机制
- web容器的会话机制
- Tensorflow 数据读取机制
- TensorFlow的变量管理:变量作用域机制
- TensorFlow基础知识5-会话(session)