我的机器有16G内存,训练程序使用的内存高达2.6G。但是当我想要将分类器(使用来自大型数据集的sklearn.svm.SVC
进行训练)保存为pickle文件时,它会消耗太多的内存,而我的机器无法提供。渴望知道任何保存分类器的替代方法。
我试过:
-
pickle
和cPickle
- 转储为
w
或wb
- Set
fast = True
两者都不起作用,总是抛出MemoryError。偶尔文件被保存,但加载它会导致ValueError: insecure string pickle
.
提前感谢!
更新谢谢大家。我没有尝试joblib,它在设置protocol=2
后工作。
我建议使用sci-kit learn中的核心外分类器。这些都是批处理学习算法,将模型输出存储为压缩稀疏矩阵,并且非常省时。
首先,下面的链接确实帮助了我。
http://scikit-learn.org/stable/auto_examples/applications/plot_out_of_core_classification.html