我遇到以下问题,我有许多 3D 卷文件,我打开它们来提取一堆 numpy 数组。 我想随机获取这些数组,即在最坏的情况下,如果所有这些数组都位于单独的文件中,我会打开与我想要获取的 numpy 数组一样多的 3D 卷。 这里的 IO 不是很好,我打开一个大文件只是为了从中获取一个小 numpy 数组。 知道如何存储所有这些数组以便 IO 更好吗? 我无法预读取所有数组并将它们全部保存在一个文件中,因为那样该文件太大而无法使用 RAM 打开。
我查了 LMDB,但似乎都是关于 Caffe 的。 知道如何实现这一目标吗?
最佳答案
我迭代了我的数据集,创建了一个 hdf5 文件并将元素存储在 hdf5 中。事实证明,当 hdf5 打开时,它不会加载 ram 中的所有数据,而是加载 header 。 然后使用 header 根据请求获取数据,这就是我解决问题的方法。
引用: http://www.machinelearninguru.com/deep_learning/data_preparation/hdf5/hdf5.html
关于python - 更快的 pytorch 数据集文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55166874/