TensorFlow学习 -2

  • 会话(TensorFlow运行模型)
    会话拥有并管理TensorFlow程序运行时的所有资源。
    两种使用会话的方式:
    (1)需要调用明确调用会话生成函数和关闭会话函数
#创建一个会话
sess = tf.Session()
sess.run(...)
#关闭会话是的本次运行中使用到的资源得到释放。
sess.close()

(2)通过Python的上下文管理器来使用会话

#创建一个会话,并通过Python中的上下文管理器来管理会话
with tf.Session() as sess:
    sess.run()
#不需要在调用Session.close()函数来关闭会话
#当上下文退出时关闭和资源释放也就自动完成了

TensorFlow不会自动生成默认的会话,需要手动指定。当默认的会话被指定之后可以通过tf.Tensor.eval函数计算一个张量的取值。

sess = tf.Session()
with sess.as_default():
    print(result.eval())

以下代码也可以完成相同的功能:

sess = tf.Session()
#下面的两个命令有相同的功能
print(sess.run(result))
print(result.eval(session=sess))

通过设置默认会话的方式来获得张量的取值更为方便,即tf.InteractiveSession函数。使用这个函数会自动生成的会话注册为默认会话。

sess = tf.InteractiveSession()
print(result.eval())
sess.close()

无论使用哪种方法都可以通过ConfigProto Protocol Buffer来配置需要生成的会话。

config = tf.ConfigProto(allow_soft_placement=True,
                        log_device_placement=True)
sess1 = tf.InteractiveSession(config=config)
sess2 = tf.Session(config=config)

通过ConfigProto可以配置并行的线程数、CPU分配策略、运算超时时间等参数。
其中,allow_soft_placement,当一下任意一个条件成立后,GPU上的运算可以放大CPU进行:
1,运算无法在GPU上执行。
2,没有GPU资源。
3,运算输入包含对CPU计算结果的引用。
参数默认值为False。
第二个参数为log_device_placement。当其为True时日志中将会记录每个节点被安排在哪个设备上用以方便调试。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值