我的机器有16G RAM,训练程序使用高达2.6G的内存。
但是当我想将分类器(使用sklearn.svm.SVC
从大型数据集中训练)保存为pickle文件时,它会占用我的机器无法提供的太多内存。渴望了解保存分类器的任何替代方法。
我试过了:
pickle
和cPickle
w
或wb
fast = True
它们都不起作用,总是引发MemoryError。有时文件已保存,但加载文件会导致ValueError: insecure string pickle
。
提前谢谢!
谢谢大家。我没有尝试过joblib,它在设置protocol=2
之后可以正常工作。
答案 0 :(得分:2)
我建议使用sci-kit学习的核心分类器。这些是批量学习算法,将模型输出存储为压缩稀疏矩阵,并且非常节省时间。
首先,以下链接确实帮助了我。
http://scikit-learn.org/stable/auto_examples/applications/plot_out_of_core_classification.html