首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >存储/加载内存较少的大型numpy数组

存储/加载内存较少的大型numpy数组
EN

Stack Overflow用户
提问于 2019-09-13 09:40:52
回答 1查看 1.1K关注 0票数 2

我有一个粗大的形状数组(20000,600,768)。我需要存储它,以便稍后我可以将它加载回我的代码中。主要问题是当您将内存加载回时内存的使用情况。我只有16 RAM内存。

例如,我试过泡菜。当它加载时,我几乎没有记忆去做任何其他事情。尤其是为了训练模特。

我尝试用hdf5 (h5py)编写并加载。只是一小块(1000,600,768)。但它似乎“吞噬”了更多的记忆。

也试过csv..。只是不-不。写入数据需要花费太多的时间。

如果有人建议我如何存储我的数组,那么当我重新加载它时,它就不会占用那么多内存,我将不胜感激。

我存储的数据是文本的向量表示,我后来用它来训练我的模型。

EN

回答 1

Stack Overflow用户

发布于 2019-09-13 10:08:46

我认为你可以做很多事情。

首先,您可以将数据格式更改为以不同的方式存储:

  • 在次要内存中的文件中,要迭代读取(将python对象转储到辅助内存中是不有效的。你需要找到更好的格式。例如,一个文本文件,其中行是矩阵的行)
  • 或者在数据库里。总是以迭代的方式使数据可读。

其次,也是最重要的,--您需要更改算法。如果无法将所有数据放入内存中,则需要使用其他类型的方法,其中使用批数据而不是所有数据。

例如,对于机器学习,有很多方法可以使用批量数据对模型进行增量更新。

第三,有一些方法可以使降低训练集的维数。例如,使用PCA、特征选择等方法

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57921092

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档