【问题标题】:In tensorflow, is variable value the only context information a session stores?在张量流中,变量值是会话存储的唯一上下文信息吗?
【发布时间】:2016-03-22 12:13:00
【问题描述】:

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

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

【问题讨论】:

    标签: tensorflow


    【解决方案1】:

    在 TensorFlow session 中的 run() 调用(“步骤”)之间保留了各种形式的状态:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-09-15
      • 1970-01-01
      • 2019-08-07
      • 2017-06-22
      • 1970-01-01
      • 1970-01-01
      • 2021-07-03
      相关资源
      最近更新 更多