0
我试图了解使用num_threads>1
连接tf.WholeFileReader
连接到tf.WholeFileReader
读取图像文件(每个文件包含单个数据示例)的意义。在这种情况下,与num_threads=1
相比,设置num_threads>1
会有什么不同吗?在这种情况下文件和批处理队列的机制是什么?TensorFlow:shuffle_batch中的单个示例文件的多个线程
我试图了解使用num_threads>1
连接tf.WholeFileReader
连接到tf.WholeFileReader
读取图像文件(每个文件包含单个数据示例)的意义。在这种情况下,与num_threads=1
相比,设置num_threads>1
会有什么不同吗?在这种情况下文件和批处理队列的机制是什么?TensorFlow:shuffle_batch中的单个示例文件的多个线程
简短的回答:可能会使执行速度更快。下面是从guide一些权威的解释:通过tf.train.shuffle_batch
与num_threads
更大 比1。这将使它从一个单一的文件在同一时间 读
单读卡器(但比1个线程快),而不是一次写入N个文件。这可以 是很重要的:
- 如果你有比输入文件多读线程,为了避免风险 ,你将有两个线程从同一 文件相互靠近读取相同的例子。
- 或者如果并行读取N个文件也会导致很多磁盘寻道。你需要多少个线程?
的
tf.train.shuffle_batch*
函数添加概要到图,其 指示示例队列有多满。如果您有足够的线程阅读 ,该摘要将保持在零以上。
谢谢,但在提问之前我看到了指南,对我而言,它可能会说相反。问题是,它的写法不是很清楚。你能解释队列的机制,以证明为什么它会更快吗? –