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

时间:2016-03-22 03:53:26

标签: tensorflow

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

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

1 个答案:

答案 0 :(得分:8)

在TensorFlow run()中,session来电("步骤")之间保留了各种形式的州:

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

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

distributed runtime增加对资源容器的支持"在会话之间共享。这些包括变量,队列和读者,可以通过将可选的container参数传递给这些对象的构造函数来配置。