首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TensorFlow:如果tf.train.batch已经在并行地将示例出队,那么并行排队示例是否会加速批处理的创建?

TensorFlow:如果tf.train.batch已经在并行地将示例出队,那么并行排队示例是否会加速批处理的创建?
EN

Stack Overflow用户
提问于 2017-02-05 14:38:39
回答 1查看 683关注 0票数 1

在TensorFlow-slim文档中,有一个ParallelReader对象,它可以通过让多个读取器将示例字符串放入队列来并行读取TFRecords数据。但是,如果我没有记错的话,tf.train.batch将示例从队列中出队,并且能够与参数num_threads并行执行。如果是这样的话,是否需要批量创建和读取数据的速度都必须相同,否则会导致批量创建速度变慢?

实际上,我不太确定出队操作是在tf.train.batch中发生的,还是在手动创建queue_runner将示例出队时发生的,因为我相信tf.train.batch可以有效地取代queue_runner操作。这是正确的吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-07 02:53:07

就你的第一段而言:答案是,输入管道中的每一步都应该有足够的带宽为模型提供支持(可能不会太多)。如果从一个队列移动到另一个队列很快,但是没有足够的数据馈送到第一个队列(例如,由于I/O问题),则很容易遇到瓶颈。您还可以想象有大量的并行读取器和大量的I/O带宽,但只有一个线程负责收集所有这些示例,这是瓶颈。一些粗略的计算可能会有所帮助,但最终您应该是monitoring the number of examples in each queue

至于第二个问题,tf.train.batch does start its own queue runner。实际的入队/出队是异步发生的,这就是为什么监控队列大小很重要,以确保训练消耗数据的速度不会快于输入管道产生数据的速度。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42049256

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档