保存scikit-learn分类器会导致内存错误

时间:2014-05-10 20:32:37

标签: python python-2.7 scikit-learn pickle

我的机器有16G RAM,训练程序使用高达2.6G的内存。 但是当我想将分类器(使用sklearn.svm.SVC从大型数据集中训练)保存为pickle文件时,它会占用我的机器无法提供的太多内存。渴望了解保存分类器的任何替代方法。

我试过了:

  • picklecPickle
  • 转储为wwb
  • 设置fast = True

它们都不起作用,总是引发MemoryError。有时文件已保存,但加载文件会导致ValueError: insecure string pickle

提前谢谢!

更新

谢谢大家。我没有尝试过joblib,它在设置protocol=2之后可以正常工作。

1 个答案:

答案 0 :(得分:2)

我建议使用sci-kit学习的核心分类器。这些是批量学习算法,将模型输出存储为压缩稀疏矩阵,并且非常节省时间。

首先,以下链接确实帮助了我。

http://scikit-learn.org/stable/auto_examples/applications/plot_out_of_core_classification.html