我正在尝试将一个大的.npy文件(~800MB)加载到Google Collab中,但每次我尝试这样做时,Collab实例都会因为内存过多而崩溃。
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
发布于 2021-05-26 02:12:22
我认为你的问题不仅仅是内存不足。在Collab实例中分配的12 GB应该足以读取一个800MB的文件。为了确认,我在我的Raspberry Pi (只有4 4GB内存)上运行了一个简单的测试。它可以创建1 1GB的.npy文件,并将其读回到新阵列中。代码如下:
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实例中运行此测试,看看会得到什么。
https://stackoverflow.com/questions/67671598
复制相似问题