我正在尝试压缩一个大的稀疏矩阵以备以后使用。我得到了这个错误:
File "tfidf_scikit.py", line 44, in <module>
pickle.dump([trainID, trainX, trainY], fout, protocol=-1)
SystemError: error return without exception set
trainX
是大型稀疏矩阵,另外两个是list6mil元素长。在
此时,Python的RAM使用量是4.6GB,而我的笔记本电脑上有16GB的RAM。在
我想我遇到了一个已知的cPickle内存错误,它不能处理太大的对象。我也尝试了marshal
,但我不认为它适用于scipy矩阵。有人能提供一个解决方案,最好是一个如何加载和保存这个例子?在
Python 2.7.5
Mac OS 10.9版
谢谢。在
我在使用一个千兆字节的Numpy矩阵时遇到了这个问题(Ubuntu12.04和Python2.7.3——似乎是这个问题:https://github.com/numpy/numpy/issues/2396)。在
我已经用numpy.savetxt() / numpy.loadtxt文件(). 矩阵被压缩,保存时添加一个.gz文件扩展名。在
因为我也只有一个矩阵,所以我没有研究HDF5的使用。在
numpy.savetxt
(仅适用于数组,不适用于稀疏矩阵)和sklearn.externals.joblib.dump
(pickling,慢得要命,内存使用量大增)对我在Python2.7上都不起作用。在相反,我使用了^{} ,它工作得很好。请记住,它只适用于}矩阵。在
csc
、csr
、bsr
、dia
或{相关问题 更多 >
编程相关推荐