4

在使用该站点的丰富经验 6 年后,我的第一条 StackOverflow 消息。感谢大家为我和其他人提供的所有巨大帮助。

然而,这个问题让我完全困惑,我想向社区寻求帮助。

我有一个 175,759,360 字节的大原始字节“F”有序文件,我需要将其读入内存以使用 python/numpy 进行分析。目标是获得 np.uint16 dtypes 的 (613, 640, 224) numpy 数组。

我已经在类似的情况下多次成功,但在上一个项目中我遇到了一个我无法解决的问题。

我以前能够通过两种方式取得成功(np.memmap)

 np.memmap(rawFileName, dtype=np.uint16, mode='r', offset=0, shape=(613, 640, 224), order='F')

或使用普通的 np.fromfile

with open('filename.raw', "rb") as rawFile:
    rawFile = np.fromfile(rawFile, dtype=np.uint16)
    rawFile = rawFile.reshape((613, 640, 224), order="F")

使用 np.memmap 的解决方案现在返回 WinError8 错误

OSError: [WinError 8] Not enough memory resources are available to process this command

并且使用 fromfile 的解决方案返回引用计数错误

*** Reference count error detected:
an attempt was made to deallocate 4 (H) ***

我想寻求解决此问题的任何帮助。内存量应该不是问题,因为我已经在 8GB 和 32GB 内存机器上尝试过代码。我正在使用带有 Python 3.6.4 版和 numpy 1.14.2 版的 Win 10

先感谢您。

4

0 回答 0