保存scikit-learn分类器导致内存错误
我的电脑有16G的内存,训练程序最多使用2.6G的内存。但是当我想把用sklearn.svm.SVC
从一个大数据集中训练出来的分类器保存为pickle文件时,内存消耗太大,导致我的电脑无法处理。我很想知道有没有其他方法可以保存这个分类器。
我尝试过:
pickle
和cPickle
- 以
w
或wb
模式保存 - 设置
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