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

5 投票
1 回答
1779 浏览
提问于 2025-04-18 06:08

我的电脑有16G的内存,训练程序最多使用2.6G的内存。但是当我想把用sklearn.svm.SVC从一个大数据集中训练出来的分类器保存为pickle文件时,内存消耗太大,导致我的电脑无法处理。我很想知道有没有其他方法可以保存这个分类器。

我尝试过:

  • picklecPickle
  • wwb模式保存
  • 设置fast = True

但这些方法都不行,总是出现内存错误。有时候文件能保存下来,但加载时会出现ValueError: insecure string pickle的错误。

提前谢谢大家!

更新

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

1 个回答

2

我建议使用sci-kit learn中的外部存储分类器。这些是批量学习算法,可以把模型的输出存储为压缩的稀疏矩阵,运行起来非常高效。

一开始,以下链接对我帮助很大。

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

撰写回答