如何序列化大型随机森林分类

2024-05-23 17:47:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用sklearn的randomforestclassifier来预测一组类。我有26000多个类,因此分类器的大小超过30gbs。我在linux上运行它,有64GB的RAM和20GB的存储空间。在

我试图通过使用joblib对我的模型进行pickle处理,但是它没有工作,因为我没有足够的辅助存储(我猜)。有什么办法可以做到吗??也许是某种压缩技术或者其他什么??在


Tags: 模型分类器linuxsklearn技术pickleram存储空间
1条回答
网友
1楼 · 发布于 2024-05-23 17:47:54

你可以试试腌菜

compressed_pickle = StringIO.StringIO()
with gzip.GzipFile(fileobj=compressed_pickle, mode='w') as f:
    f.write(pickle.dumps(classifier))

然后可以将compressed_pickle写入文件。在

要读回:

^{pr2}$

编辑

在3.4之前的Python版本中,序列化对象大小的硬限制是4GB。pickle协议的最新版本(版本4.0)没有此限制,只需指定协议版本:

pickle.dumps(obj, protocol=4)

对于Python的旧版本,请参考以下答案: _pickle in python3 doesn't work for large data saving

相关问题 更多 >