前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >tf.IneractiveSession

tf.IneractiveSession

作者头像
狼啸风云
发布2022-06-05 10:55:41
1560
发布2022-06-05 10:55:41
举报
文章被收录于专栏:计算机视觉理论及其实现

在交互式环境下(比如python脚本或者jupyter的编辑器下),通过设置默认会话的方式来获取张量的取值更加方便。所以tensorflow提供了一种在交互式环境下直接构建默认会话的函数。这个函数就是就是tf.IneractiveSession。使用这个函数会自动生成的会话注册为默认会话。以下代码展示了tf.InteractiveSession函数的用法。

代码语言:javascript
复制
sess = tf.InteractiveSession()
print(result.eval())
sess.close()

 通过tf.InteractiveSession函数可以省去将产生的会话注册为默认会话的过程。无论使用哪种方法都可以通过ConfigProto Buffer来配置需要生成的会话。下面给出了通过ConfigProto配置会话的方法:

代码语言:javascript
复制
config = tf.ConfigProto(allow_soft_placement=True, log_device_placement=True)
sess1 = tf.InteractiveSession(config = config)
sess2 = tf.Session(config = config)

通过ConfigProto可以配置类似并行的线程数、GPU分配策略、运算超时时间等参数。在这些参数中,最常使用的有两个。第一个是allow_soft_placement,这是一个布尔型的参数,当它为True时,在以下任意一个条件成立时,GPU上的运算可以放到CPU上进行:

1.运算无法在GPU上执行。

2.没有GPU资源(比如运算被指定在第二个GPU上运行,但是机器只有一个GPU)。

3.运算输入包含对CPU计算结果的引用。

这个参数的默认值为False,但是为了使得代码的可移植性更强,在有GPU的环境下这个参数一般会被设置为True。不同的GPU驱动版本可能对计算的支持有略微的区别,通过将allow_soft_placement参数设置为True,当某些运算无法被当前GPU支持时,可以自动调整到CPU上,而不是报错。类似地,通过将这个参数设置为True,可以让程序在拥有不同数量的GPU机器上顺利运行。

第二个使用得比较多的配置参数是log_device_placement。这也是一个布尔型的参数,当它为True时日志中将会记录每个节点被安排在哪个设备上以方便调试。而在换将中将这个参数设置为False可以减少日志量。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-06-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档