【发布时间】:2013-11-16 15:17:58
【问题描述】:
我正在尝试 cPickle 一个大型 scipy 稀疏矩阵以供以后使用。我收到此错误:
File "tfidf_scikit.py", line 44, in <module>
pickle.dump([trainID, trainX, trainY], fout, protocol=-1)
SystemError: error return without exception set
trainX 是大型稀疏矩阵,另外两个是 6 百万个元素长的列表。
In [1]: trainX
Out[1]:
<6034195x755258 sparse matrix of type '<type 'numpy.float64'>'
with 286674296 stored elements in Compressed Sparse Row format>
此时,Python RAM 使用量为 4.6GB,我的笔记本电脑上有 16GB 的 RAM。
我想我遇到了一个已知的 cPickle 内存错误,它不适用于太大的对象。我也尝试过marshal,但我认为它不适用于 scipy 矩阵。有人可以提供一个解决方案,最好是一个关于如何加载和保存的示例?
Python 2.7.5
Mac OS 10.9
谢谢。
【问题讨论】:
-
我对稀疏矩阵和泡菜有同样的问题,不要认为这是一个链接的重复问题。
标签: python scipy sparse-matrix pickle