您的位置:首页 > 其它

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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: