python - 更快的 pytorch 数据集文件

标签 python machine-learning dataset pytorch lmdb

我遇到以下问题,我有许多 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/

相关文章:

python - OpenCV-Python : img is not a numpy array, 既不是标量

opencv - 如何使用 SIFT/SURF 作为机器学习算法的特征?

delphi - 执行查询后数据集的自定义排序顺序?

python - 如何修复数据类型不匹配以使用我的训练模型预测图像?

python - 从 csv 文件逐 block 读取和反转数据并复制到新的 csv 文件

text - 有免费的医学或临床报告/语料库吗?

python - Fabric 没有使用正确的 key

python - 为什么从 CSV 文件导入数据时出现此 DBeaver 错误?

python - 无法使用从本地文件读取的正确凭据(用户名和密码)向 SSH 服务器进行身份验证

machine-learning - Watson 机器学习 api - token 刷新 400 错误