TFRecords 文件分片需要什么?

Ujj*_*wal 2 tensorflow

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

对于随机性,在创建单个 TFRecord 文件之前不能对文件列表进行打乱吗?

Alo*_*ble 6

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

根据对象检测 API,分片数据集有两个优点:

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

您可能已经知道第二点,因为它在您的第二个问题中:

对于随机性,在创建单个 TFRecord 文件之前不能对文件列表进行打乱吗?

在创建记录之前混洗数据集确实是一个很好的做法,因为混洗 TFRecord 只能部分完成。实际上,您只能在内存中加载一定数量的示例。然后通过在内存中随机选择下一个示例来完成改组。你可以在这个问题中看到更多

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

对数据集进行分片可以减轻改组。您可以开始从每个文件中读取一点,随机选择,而不是被迫始终以相同的顺序从同一个文件中读取。


归档时间:

查看次数:

2369 次

最近记录:

7 年,5 月 前