簡體   English   中英

盡管有足夠的RAM,Python中的內存錯誤

[英]Memory Error in Python despite having sufficient 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

我已經收到以下錯誤。 誰能解釋給我這是什么問題? 我正在嘗試使用可用的數據制作3-D矩陣墊。 我有49GB的RAM。 為什么仍然出現內存錯誤?

Traceback (most recent call last):
  File "/home/prakriti/Project/fdk_new.py", line 11, in <module>
    x = scipy.io.loadmat('/home/prakriti/Project/A.mat')
  File "/usr/lib/python2.7/dist-packages/scipy/io/matlab/mio.py", line 152, in loadmat
    matfile_dict = MR.get_variables(variable_names)
  File "/usr/lib/python2.7/dist-packages/scipy/io/matlab/mio5.py", line 270, in get_variables
    hdr, next_position = self.read_var_header()
  File "/usr/lib/python2.7/dist-packages/scipy/io/matlab/mio5.py", line 223, in read_var_header
    stream = BytesIO(dcor.decompress(data))
MemoryError

提供答案,因為注釋格式不正確。

嘗試不創建額外的內存。 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文件的大小。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM