TFRecord 应该包含多个观察值还是一个?
Should a TFRecord contain multiple observations or one?
我在 explanation 中看到一个 TFRecord 包含多个 类 和多个图像(一只猫和一座桥)。写入时,两个图像都写入一个 TFRecord。在回读过程中,验证此 TFRecord 包含两个图像。
我在其他地方看到有人为每个图像生成一个 TFRecord,我知道你可以像这样加载多个 TFRecord 文件:
train_dataset = tf.data.TFRecordDataset("<Path>/*.tfrecord")
但是推荐哪种方式呢?我应该为每个图像构建一个 tfrecord,还是为多个图像构建一个 tfrecord?如果将多个图像放入一个 tfrecord,那么最大数量是多少?
正如您所说,可以在单个 TFRecord
文件中保存任意数量的条目,并且可以根据需要创建任意数量的 TFRecord
文件。
我建议使用实际考虑因素来决定如何进行:
- 一方面,尝试使用更少的
TFRecord
文件以便更轻松地处理文件系统中的移动文件
- 另一方面,避免将
TFRecord
文件增长到可能成为文件系统问题的大小
- 请记住,为训练/验证/测试拆分保留单独的
TFRecord
文件很有用
- 有时数据集的性质使得如何拆分成单独的文件变得显而易见(例如,我有一个视频数据集,每个参与者会话使用一个
TFRecord
文件)
我在 explanation 中看到一个 TFRecord 包含多个 类 和多个图像(一只猫和一座桥)。写入时,两个图像都写入一个 TFRecord。在回读过程中,验证此 TFRecord 包含两个图像。
我在其他地方看到有人为每个图像生成一个 TFRecord,我知道你可以像这样加载多个 TFRecord 文件:
train_dataset = tf.data.TFRecordDataset("<Path>/*.tfrecord")
但是推荐哪种方式呢?我应该为每个图像构建一个 tfrecord,还是为多个图像构建一个 tfrecord?如果将多个图像放入一个 tfrecord,那么最大数量是多少?
正如您所说,可以在单个 TFRecord
文件中保存任意数量的条目,并且可以根据需要创建任意数量的 TFRecord
文件。
我建议使用实际考虑因素来决定如何进行:
- 一方面,尝试使用更少的
TFRecord
文件以便更轻松地处理文件系统中的移动文件 - 另一方面,避免将
TFRecord
文件增长到可能成为文件系统问题的大小 - 请记住,为训练/验证/测试拆分保留单独的
TFRecord
文件很有用 - 有时数据集的性质使得如何拆分成单独的文件变得显而易见(例如,我有一个视频数据集,每个参与者会话使用一个
TFRecord
文件)