tensorflow运行模型——会话

1.会话(Session)

tensorflow的会话(Session)用来执行定义好的运算
会话拥有并管理tensorflow程序运行时的所有资源。
当所有计算完成后要关闭会话来帮助系统回收资源,否则可能出现资源泄露的问题。

tensorflow中的会话的使用模式有两种:
(1)第一种模式需要明确调用会话生成函数和关闭会话函数。
代码流程:

	import tensorflow as tf
	
	#创建一个会话
	sess = tf.Session()
	#使用这个创建好的会话来得到关心的运算的结果。
	#比如调用sess.run(result)来得到张量result的取值。
	sess.run(...)
	
	#关闭会话,使得本次运行中使用到的资源可以被释放
	sess.close()

注意:这种模式下,当程序异常退出时,关闭会话的函数可能不会被执行而导致资源泄露。

(2)第二种模式是通过python的上下文管理器来使用会话
代码流程:

#创建一个会话,并通过python中的上下文管理器来管理这个会话
	with tf.Session() as sess:
		#使用这个创建好的会话来得到关心的运算的结果。
		sess.run(...)
	#不需要再调用“Session.close()”函数来关闭会话
	#当上下文退出时会话关闭和资源释放也自动完成了

tensorflow对于默认的会话(like前面会生成默认的计算图)需要手动指定。
当默认的会话被指定后,可以通过tf.Tensor.eval函数来计算一个张量的取值。
示例:

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

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

猜你喜欢

转载自blog.csdn.net/weixin_43202635/article/details/83961541
今日推荐