我的机器有16G的内存,训练程序最多使用2.6G的内存。但是当我想把使用大型数据集训练的分类器(使用
我尝试过:
-
谢谢!更新:谢谢大家。我没有尝试过joblib,在设置
sklearn.svm.SVC
)保存为pickle文件时,它消耗了太多内存,我的机器不能提供足够的内存。请问是否有其他替代方法可以保存分类器。我尝试过:
-
pickle
和cPickle
- 以w
或wb
方式写入
- 设置fast = True
但是这些都不起作用,总是会引发MemoryError。偶尔会成功保存文件,但加载时会引发ValueError: insecure string pickle
。谢谢!更新:谢谢大家。我没有尝试过joblib,在设置
protocol=2
后它可以工作。
joblib.dump
进行数据序列化,相比标准的pickle,它对于大型NumPy数组应该更加智能。 - Fred Foojoblib.dump(model,file,compress=3)
时遇到了一个非常严重的 MemoryError。这个 scikit-learn 模型是一个包含数千棵树的随机森林。我将尝试使用compress=2
。 - visoft