什么是TensorFlow会话?

11
以下是对于《Getting Started with TensorFlow》中引用的以下句子的翻译意思:
“会话(encapsulate)封装了(TensorFlow运行时的控制和状态(control and state))。”
简单来说,会话就像是一个包裹住TensorFlow运行时控制和状态的容器,可以控制和管理整个程序的运行。

5
在这个上下文中,“encapsulates”的意思大致是“包含”。它不是关于面向对象编程的封装,只是会话维护了所有需要确定当前状态的数据。 - 3Dave
2个回答

8

正如达利所说,封装与面向对象编程的封装无关。

控制: TensorFlow图是计算描述。要计算任何内容,必须在会话中启动图。

状态: 会话将图操作放置在设备上,例如CPU或GPU,并提供执行它们的方法。这些方法返回由操作产生的张量作为Python中的numpy ndarray对象以及C和C ++中的tensorflow :: Tensor实例。


8
这里的封装和 OOP 封装没有任何关系。一个更易于理解的定义(特别适合新手)在 session 文档中。点击这里

会话对象封装了操作对象执行的环境,以及对张量对象的求值。

也就是说,在图定义阶段定义的运算符和变量都不会被执行。例如,这里什么都不会被执行或计算。
a = tf.Variable(tf.random_normal([3, 3], stddev=1.)
b = tf.Variable(tf.random_normal([3, 3], stddev=1.)
c = a + b

您现在无法获取张量 a/b/c 的值。这些值只能在会话内进行评估。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接