是否有关于分片数据集的指南?

时间:2016-12-20 16:28:51

标签: tensorflow

是否有关于选择数据集的分片文件数或每个分片中的记录数的指导原则?

在使用tensorflow.contrib.slim

的示例中

每个分片中的分片文件数和记录数是否会对训练模型和训练模型的性能产生影响?

据我所知,如果我们不将数据集拆分为多个分片,则对于混洗数据将不是随机的,因为capacity的{​​{1}}可能小于数据集。

使用多个分片还有其他优点吗?

更新

The documentation

  

如果你有更多的读取线程而不是输入文件,为了避免你有两个线程从同一个文件中读取相同例子的风险。

为什么我们不能使用50个线程来读取5个文件?

1 个答案:

答案 0 :(得分:0)

较新的 (2.5) 版本的 Tensorflow 具有数据集的分片功能。 从 tensorflow documentation

中找到以下示例代码
A = tf.data.Dataset.range(10)
B = A.shard(num_shards=3, index=0)
list(B.as_numpy_iterator())  

读取单个输入文件时,可以按如下方式分片元素

d = tf.data.TFRecordDataset(input_file)
d = d.shard(num_workers, worker_index)