tf.Session
前言
tf.Session()
是Tensorflow中必不可少的部分,下面是关于它的一些知识总结。
官方
class tf.Session
A class for running TensorFlow operations.
运行Tensorflow操作的类
A Session object encapsulates the environment in which Operation objects are executed, and Tensor objects are evaluated. For example:
Session封装了被执行操作和Tensor计算的环境:
# Build a graph.
a = tf.constant(5.0)
b = tf.constant(6.0)
c = a * b
# Launch the graph in a session.
sess = tf.Session()
# Evaluate the tensor `c`.
print sess.run(c)
A session may own resources, such as variables, queues, and readers. It is important to release these resources when they are no longer required. To do this, either invoke the close() method on the session, or use the session as a context manager. The following two examples are equivale
一个Session可能拥有像变量、队列和reader(不知道怎么翻译,有说读取器)的资源。当它们不在被需要时,释放它们是很重要的。为了释放资源,要么用close()
,要么使用作为context管理器的Session。下面2个是等价的。
# Using the `close()` method.
sess = tf.Session()
sess.run(...)
sess.close()
# Using the context manager.
with tf.Session() as sess:
sess.run(...)
例子
import tensorflow as tf
matrix1 = tf.constant([[3, 3]])
matrix2 = tf.constant([[2],
[2]])
product = tf.matmul(matrix1, matrix2) # matrix multiply np.dot(m1, m2)
# method 1
sess = tf.Session()
result = sess.run(product)
print(result)
sess.close()
# method 2
with tf.Session() as sess:
result2 = sess.run(product)
print(result2)
理解
- 比较推荐使用
with tf.Session() as sess
,
Reason: to create a session that is automatically closed on exiting the context, including when an uncaught exception is raised.