【发布时间】:2019-01-25 08:36:33
【问题描述】:
TensorFlow 提供的股票示例在shuffle 之前使用了map,如下所示:
filenames = ["/var/data/file1.tfrecord", "/var/data/file2.tfrecord"]
dataset = tf.data.TFRecordDataset(filenames)
dataset = dataset.map(...)
dataset = dataset.shuffle(buffer_size=10000)
dataset = dataset.batch(32)
但是,performance guide page 和 one of the GitHub issues 建议出于性能原因最好使用 map_and_batch。但是由于shuffle 介于两者之间,我不太确定在那里做什么。看起来甚至在 map 和 batch 完成这项工作之前就应用了 shuffle,如下所示:
filenames = ["/var/data/file1.tfrecord", "/var/data/file2.tfrecord"]
dataset = tf.data.TFRecordDataset(filenames)
dataset = dataset.shuffle(buffer_size=10000)
dataset = dataset.apply(tf.contrib.data.map_and_batch(..., batch_size=32))
我想知道这是否会引入任何我可能没有预料到的问题,而不是 TensorFlow 提供的示例。我希望这两个代码做同样的事情,但第二个代码做得更快;在最坏的情况下以相同的速度。
【问题讨论】:
标签: python tensorflow tensorflow-datasets