尽管有足够的RAM,但Python中的内存错误

时间:2016-01-31 17:25:52

标签: python python-2.7 python-2.5

string OpenTextFile()
{
    var ofd = new OpenFileDialog();
    return ofd.ShowDialog() == true ?
            System.IO.File.ReadAllText(ofd.FileName) :
            String.Empty;
}

我为此收到了以下错误。任何人都可以解释一下这里的问题是什么?我正在尝试用我可以获得的数据制作一个三维矩阵垫。我有49GB的RAM可用。为什么我仍然会出现内存错误?

from __future__ import division
import scipy.io 
import numpy as np
import math
from math import sin
from math import cos


mat = np.zeros((1024,1024,360 ),dtype=np.float32)                                    

x = scipy.io.loadmat('/home/prakriti/Project/A.mat')          
A = np.array((x.values()))
mat[:,:,0:120] = A[0][:,:,:]
del x
del A

y = scipy.io.loadmat('/home/prakriti/Project/B.mat')  
B = np.array((y.values()))
mat[:,:,120:240] = B[0][:,:,:]
del y
del B

z = scipy.io.loadmat('/home/prakriti/Project/C.mat')  
C = np.array((z.values()))
mat[:,:,240:360] = C[0][:,:,:]
del z
del C

s = np.linspace(0,1023,1024)
v = np.linspace(0,1023,1024)
ss,vv = np.meshgrid(s,v)
zz = ss**2 + vv**2
print zz

1 个答案:

答案 0 :(得分:0)

提供答案,因为评论无法正确格式化。

尽量不要创建额外的内存。 GIL需要一些时间来释放它。

而不是:

x = scipy.io.loadmat('/home/prakriti/Project/A.mat')          
A = np.array((x.values()))
mat[:,:,0:120] = A[0][:,:,:]
del x
del A

做的:

mat[:,:,0:120] = np.array((scipy.io.loadmat('/home/prakriti/Project/A.mat').values()))[0][:,:,:]

等...

否则,我们需要更多信息。与mat文件的大小相同。