我正在尝试 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
操作系统 10.9
谢谢你。