如何实现数据集管道的分布式读取和消费

2024-05-14 19:13:07 发布

您现在位置:Python中文网/ 问答频道 /正文

很容易使用两个线程,一个线程不断地向queue提供数据,另一个线程使用队列中的数据并执行计算。由于TensorFlow建议在1.2.0之后使用Dataset作为输入管道,我想使用Dataset及其{}来完成上面的任务,即:

  1. 有两个过程,一个进料,另一个消耗
  2. 管道会挂起,要么是满的,要么是空的,在消耗计算结束时停止。在

为什么在Threading and Queues的教程中,TensorFlow使用thread而不是{}?在

提前谢谢你。在


Tags: and数据管道队列queue过程tensorflow线程
1条回答
网友
1楼 · 发布于 2024-05-14 19:13:07

从TensorFlow 1.3开始,分布式^{}管道尚不受支持。我们正在研究跨设备和/或进程拆分数据集的支持,但这种支持还没有准备好。在

同时,实现目标最简单的方法是使用tf.FIFOQueue。您可以定义从队列读取的Dataset,如下所示:

q = tf.FIFOQueue(...)

# Define a dummy dataset that contains the same value repeated indefinitely.
dummy = tf.contrib.data.Dataset.from_tensors(0).repeat(None)

dataset_from_queue = dummy.map(lambda _: q.dequeue())

然后可以用dataset_from_queue组合其他Dataset转换。在

相关问题 更多 >

    热门问题