我有几个大的.mtx(范围从2-12gb)试图加载到Python中的稀疏矩阵中,但它不起作用。我自己在同一台机器上生成的文件没有错误,所以我完全困惑于此。在
获取有关文件的信息工作正常:
from scipy.io import mminfo,mmread
mminfo(filename)
>>> (8649029, 181, 110656308, 'coordinate', 'real', 'general')
但如果我试图将文件加载到内存中:
^{pr2}$它只是挂着。在等待了一个小时后,我试图中断内核(这是在Windows7机器上的IPython笔记本上),但这也会挂起,我不得不关闭笔记本才能停止。我在命令行中重复了它,得到了类似的结果。这次我可以用ctrl-c中断,但是遇到了一些我以前从未见过的系统错误(没有Python异常):
forrtl: error (200): program aborting due to control-C event
Image PC Routine Line Source
kernel32.dll 0000000076CC4803 Unknown Unknown Unknown
kernel32.dll 0000000076C8652D Unknown Unknown Unknown
ntdll.dll 0000000076EBC541 Unknown Unknown Unknown
我甚至尝试通过Python解释器在Mac上加载相同的文件。这太挂了,如果不关闭终端会话,就无法中断。在
你知道这里会发生什么吗??在
我看到过类似的大文件在scipy中的I/o要花很长时间。当时,我考虑将它们写为二进制而不是ASCII MTX格式,这将减少所需的I/O量。请参阅Scipy I/O Cookbook,特别是标题为“用元数据将Fortran或C数组写入二进制文件”一节。
libpny
将需要链接到中。在相关问题 更多 >
编程相关推荐