首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >加载内存过大的.npy文件

加载内存过大的.npy文件
EN

Stack Overflow用户
提问于 2021-05-24 19:49:54
回答 1查看 76关注 0票数 0

我正在尝试将一个大的.npy文件(~800MB)加载到Google Collab中,但每次我尝试这样做时,Collab实例都会因为内存过多而崩溃。

代码语言:javascript
运行
复制
     import numpy as np
     a=np.load('oddata.npy',allow_pickle=True)

我使用的是具有12 GB RAM的基本Collab实例。

我尝试过使用mmap,但它返回了这个错误: Python : Array can but be memory-mmap:ValueError objects in dtype。

有没有解决这个问题的办法,比如把.npy文件分成块或者把它转换成另一种文件格式。

最好的

Araf

EN

回答 1

Stack Overflow用户

发布于 2021-05-26 02:12:22

我认为你的问题不仅仅是内存不足。在Collab实例中分配的12 GB应该足以读取一个800MB的文件。为了确认,我在我的Raspberry Pi (只有4 4GB内存)上运行了一个简单的测试。它可以创建1 1GB的.npy文件,并将其读回到新阵列中。代码如下:

代码语言:javascript
运行
复制
import numpy as np
nimg, n0, n1 = 1000, 512, 512
arr = np.arange(nimg*n0*n1).reshape(nimg,n0,n1)
print(arr.dtype, arr.shape)

np.save('SO_67671598.npy',arr)
arr2 = np.load('SO_67671598.npy')    
print(arr2.dtype, arr2.shape)

无论是否使用allow_pickle=True参数,我都会得到相同的结果。请注意,不推荐使用allow_pickle=True (出于安全原因)。在加载对象数组时,这是必要的。我建议您在Collab实例中运行此测试,看看会得到什么。

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

https://stackoverflow.com/questions/67671598

复制
相关文章

相似问题

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