gpt4 book ai didi

python - 保存大型 Scipy 稀疏矩阵

转载 作者:行者123 更新时间:2023-11-28 18:46:09 30 4
gpt4 key购买 nike

我正在尝试 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 是大型稀疏矩阵,另外两个是 600 万元素长的列表。

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 操作系统 10.9

谢谢。

最佳答案

我遇到了一个数 GB 的 Numpy 矩阵问题(Ubuntu 12.04 和 Python 2.7.3 - 似乎是这个问题:https://github.com/numpy/numpy/issues/2396)。

我已经使用 numpy.savetxt()/numpy.loadtxt() 解决了这个问题。矩阵被压缩并在保存时添加 .gz 文件扩展名。

因为我也只有一个矩阵,所以我没有研究 HDF5 的使用。

关于python - 保存大型 Scipy 稀疏矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19794249/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com