在使用该站点的丰富经验 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
先感谢您。