3

使用 Python/Numpy,我正在尝试导入文件;但是,该脚本返回一个我认为是内存错误的错误:

In [1]: import numpy as np

In [2]: npzfile = np.load('cuda400x400x2000.npz')

In [3]: U = npzfile['U']
---------------------------------------------------------------------------
SystemError                               Traceback (most recent call last)
<ipython-input-3-0539104595dc> in <module>()
----> 1 U = npzfile['U']

/usr/lib/pymodules/python2.7/numpy/lib/npyio.pyc in __getitem__(self, key)
    232             if bytes.startswith(format.MAGIC_PREFIX):
    233                 value = BytesIO(bytes)
--> 234                 return format.read_array(value)
    235             else:
    236                 return bytes

/usr/lib/pymodules/python2.7/numpy/lib/format.pyc in read_array(fp)
    456             # way.
    457             # XXX: we can probably chunk this to avoid the memory hit.
--> 458             data = fp.read(int(count * dtype.itemsize))
    459             array = numpy.fromstring(data, dtype=dtype, count=count)
    460 

SystemError: error return without exception set

如果正确加载,U将包含 400*400*2000 双精度数,即大约 2.5 GB。系统似乎有足够的可用内存:

bogeholm@bananabot ~/Desktop $ free -m
             total       used       free     shared    buffers     cached
Mem:          7956       3375       4581          0         35       1511
-/+ buffers/cache:       1827       6128
Swap:        16383          0      16383

这是内存问题吗?除了购买更多 RAM 之外,还能以其他方式修复它吗?盒子是带有 Python 2.7.3rc2 和 Numpy 1.6.2 的 Linux Mint DE。

干杯,

\T

4

0 回答 0