tfrecord 文件的最佳大小

Geo*_*rge 6 tensorflow tensorflow-datasets

根据您的经验,最适合在各种设备(硬盘、ssd、nvme)和存储位置(本地计算机、具有网络安装的 HPC 集群)上运行的 .tfrecord 文件的理想大小是多少?

如果我在云中技术更强大的计算机上获得比在本地 PC 上更慢的性能,tfrecord 数据集的大小是否可能是瓶颈的根本原因?

谢谢

小智 8

Tensorflow 官方网站推荐 ~100MB ( https://docs.w3cub.com/tensorflow~guide/performance/performance_guide/ )

读取大量小文件会显着影响 I/O 性能。获得最大 I/O 吞吐量的一种方法是将输入数据预处理为更大(~100MB)的 TFRecord 文件。对于较小的数据集(200MB-1GB),最好的方法通常是将整个数据集加载到内存中。


MrM*_*tto 6

目前(2020 年 9 月 19 日)Google 建议遵循以下经验法则:

“一般来说,您应该将数据分片到多个文件中,以便可以并行化 I/O(在单个主机内或跨多个主机)。经验法则是文件数量至少是主机数量的 10 倍读取数据。同时,每个文件应该足够大(至少 10+MB,理想情况下为 100MB+),以便您从 I/O 预取中受益。例如,假设您有 X GB 的数据,并且计划在最多 N 个主机。理想情况下,您应该将数据分片为 ~10 N 个文件,只要 ~X/(10 N) 为 10+ MB(理想情况下为 100+ MB)。如果小于该值,您可能需要创建更少的分片来权衡并行性优势和 I/O 预取优势。”

来源: https: //www.tensorflow.org/tutorials/load_data/tfrecord