我有大量的序列 - 可能有数十万 - 每个包含 100 到 10,000 个项目,每个项目包含大约 5 个浮点数。
我需要一个可以快速批量提供这些数据以进行 PyTorch 训练的数据存储。我还需要能够快速将新序列写入商店。这就像强化学习的经验回放缓冲区,但我想存储每一次运行。
这些序列每个都应该有一些可查询格式的附加结构化元数据,以便我可以选择序列子集。
最好的解决方案看起来像 HDF5 - 通过 h5py 或 PyTables - 除了我不知道如何使它有效地处理可变序列长度。填充是不合适的,因为长度变化很大,并且将每个序列存储为自己的 HDF5 数据集似乎是一个糟糕的主意,因为 HDF5 似乎没有针对大量小型数据集进行优化。
我关注的想法包括 Pandas 多索引、HDF5 区域引用以及从头开始构建自定义元数据索引系统。我真的不知道从这里去哪里。
存储紧凑性很重要——我需要合理有效地利用我的存储空间。