有什么需要分割TFRecords文件?

时间:2017-05-04 18:04:39

标签: tensorflow

为什么在TensorFlow的初始模型示例中对TFRecords文件进行分片?

对于随机性,在创建一个TFRecord文件之前,是否可以对文件列表进行洗牌?

1 个答案:

答案 0 :(得分:1)

为什么在TensorFlow的初始模型示例中分片TFRecords文件?

根据object detection API,分片数据集有两个优点:

  1. 可以并行读取文件,从而提高数据加载速度
  2. 通过分片可以更好地整理示例

您可能已经知道第二点,就像第二个问题一样:

出于随机性,在创建一个TFRecord文件之前不能对文件列表进行混洗吗?

在创建记录之前改组数据集确实是一个好习惯,因为改组TFRecord只能部分完成。实际上,您只能在内存中加载一定数量的示例。然后通过在内存中的随机选择下一个示例来完成改组。您可以在this question

中看到更多内容

但是,如果在创建记录时仅对数据集进行混洗,则网络将在连续的训练时期中始终以相同的顺序看到示例。由于一劳永逸地给出了随机顺序,这可能会导致不必要的收敛行为。因此,更有趣的是在运行中随机调整数据集以在不同时期具有不同的顺序。

共享数据集可以减轻混洗的难度。不必强迫总是从相同的一个文件中以相同的顺序读取,而是可以开始从每个文件中读取一些内容,并随机选择。