为什么在TensorFlow的初始模型示例中对TFRecords文件进行分片?
对于随机性,在创建一个TFRecord文件之前,是否可以对文件列表进行洗牌?
答案 0 :(得分:1)
为什么在TensorFlow的初始模型示例中分片TFRecords文件?
根据object detection API,分片数据集有两个优点:
您可能已经知道第二点,就像第二个问题一样:
出于随机性,在创建一个TFRecord文件之前不能对文件列表进行混洗吗?
在创建记录之前改组数据集确实是一个好习惯,因为改组TFRecord只能部分完成。实际上,您只能在内存中加载一定数量的示例。然后通过在内存中的随机选择下一个示例来完成改组。您可以在this question
中看到更多内容但是,如果在创建记录时仅对数据集进行混洗,则网络将在连续的训练时期中始终以相同的顺序看到示例。由于一劳永逸地给出了随机顺序,这可能会导致不必要的收敛行为。因此,更有趣的是在运行中随机调整数据集以在不同时期具有不同的顺序。
共享数据集可以减轻混洗的难度。不必强迫总是从相同的一个文件中以相同的顺序读取,而是可以开始从每个文件中读取一些内容,并随机选择。