2024-05-23 17:47:54 发布
网友
我使用sklearn的randomforestclassifier来预测一组类。我有26000多个类,因此分类器的大小超过30gbs。我在linux上运行它,有64GB的RAM和20GB的存储空间。在
我试图通过使用joblib对我的模型进行pickle处理,但是它没有工作,因为我没有足够的辅助存储(我猜)。有什么办法可以做到吗??也许是某种压缩技术或者其他什么??在
你可以试试腌菜
compressed_pickle = StringIO.StringIO() with gzip.GzipFile(fileobj=compressed_pickle, mode='w') as f: f.write(pickle.dumps(classifier))
然后可以将compressed_pickle写入文件。在
compressed_pickle
要读回:
编辑
在3.4之前的Python版本中,序列化对象大小的硬限制是4GB。pickle协议的最新版本(版本4.0)没有此限制,只需指定协议版本:
pickle.dumps(obj, protocol=4)
对于Python的旧版本,请参考以下答案: _pickle in python3 doesn't work for large data saving
你可以试试腌菜
然后可以将
compressed_pickle
写入文件。在要读回:
^{pr2}$编辑
在3.4之前的Python版本中,序列化对象大小的硬限制是4GB。pickle协议的最新版本(版本4.0)没有此限制,只需指定协议版本:
对于Python的旧版本,请参考以下答案: _pickle in python3 doesn't work for large data saving
相关问题 更多 >
编程相关推荐