Tensorflow队列提供的优势是可以独立于图表的其余部分提取和排队数据,从而允许CPU /磁盘预取数据,以便GPU不会干涸。
我已经在a blog中读到了使用数据集API,这再次丢失了。但是,数据集shuffle()
函数允许buffer_size
,我会假设启用缓冲区队列?这与组合数据集API和队列相同(请参阅下面的代码)?是否有建议的方法来创建一个适当的,独立的数据获取队列?
数据集API +队列的代码示例:
sample_set = tf.data.Dataset.from_generator(...)
sample = sample_set.make_one_shot_iterator().get_next()
sample_batch = tf.train.shuffle_batch([sample], batch_size=10,
capacity=30, num_threads=1,
min_after_dequeue=1)
... 这与纯数据集API中的相同吗? (如何在此处定义线程数?)
sample_set = tf.data.Dataset.from_generator(...)
sample_set = sample_set.shuffle(buffer_size=30)
sample_set = sample_set.batch(10)
sample = sample_set.make_one_shot_iterator().get_next()