在张量流中的两个图之间共享队列

jra*_*ary 3 tensorflow

是否可以在TensorFlow中的两个图之间共享队列?我想在训练期间做一种自我选择"硬阴性"的例子.

为了加快这个过程,我需要单独的线程来进行硬性负面示例选择,以及培训过程.硬否定选择基于对当前模型的评估,并且它将从检查点文件加载其图形.训练图在另一个线程上运行并写入检查点文件.这两个图应该共享相同的队列:训练图将使用示例,硬否定选择将产生它们.

mrr*_*rry 5

目前,不支持在TensorFlow的开源版本中的不同图形之间共享状态:每个图形在单独的会话中运行,并且每个会话使用一组隔离的设备.

但是,似乎可以使用单个图形中的队列来实现目标.只需构造一个队列(使用eg tf.FIFOQueue)并使用tf.import_graph_def()从检查点文件导入图形到当前图形.使用该return_elements参数tf.import_graph_def()可以指定将包含否定示例的张量的名称,然后添加q.enqueue_many()操作以将它们添加到队列中.然后,您将分叉一个线程以enqueue_many在循环中运行该操作.在训练图表中,您可以使用q.dequeue_many()一组负面示例,并将其用作训练过程的输入.

  • 2016年3月发布的分布式Tensorflow引入了"资源容器",可以跨会话共享状态(变量,队列和读取器).请参阅@mrry的回答:http://stackoverflow.com/a/36145962/38626 (2认同)