在tensorflow中,变量值是会话存储的唯一上下文信息吗?

She*_*hao 2 tensorflow

假设我们运行session.run([tensor_to_eval]),唯一的驻留信息是否为tf.Variable值,并且所有其他评估结果是从调用返回还是丢弃?

假设我们有两个会话,他们是否共享除默认图表之外的任何内容?

mrr*_*rry 8

run()在TensorFlow 会话中,在调用("步骤")之间保留了各种形式的状态:

  • 正如您已经指出的,tf.Variable对象在调用之间存储值,可以通过任何步骤读取和写入.
  • TensorFlow队列(教程)允许您在一个步骤中将一个多个值排入有界缓冲区,并在稍后的步骤中将一个多个值出列.队列还支持步骤之间的协调,例如生产者/消费者关系中的背压.它们还允许您使用类似函数在逐个元素和批量计算之间切换tf.train.batch().
  • TensorFlow阅读器(教程)就像隐式文件指针,它们记住它们在步骤之间的文件中的当前位置.read()例如,op的后续执行产生文本文件的不同.

在TensorFlow的单进程版本中,会话不共享任何状态.它们可以共享相同的图形(如果它们都使用相同的默认图形创建),但有状态组件(例如tf.Variable对象)将在不同的会话中采用不同的值.

分布式运行时增加了对被会话之间共享的"资源集装箱"的支持.这些包括变量,队列和读取器,可以通过将可选container参数传递给这些对象的构造函数来进行配置.