训练后的机器学习模型太大了

2024-04-18 00:30:30 发布

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

我们为一些回归任务训练了一个额外的树模型。我们的模型由3棵额外的树组成,每棵树有200棵树,深度为30。在3棵额外的树上,我们使用岭回归。 我们对模型进行了几个小时的训练,并对训练过的模型(整个类对象)进行pickle处理,以备以后使用。但是,保存的训练模型太大了,大约140 GB! 有没有办法缩小保存模型的大小?pickle中是否有任何有用的配置,或者pickle的任何替代品?在


Tags: 对象模型替代品pickle小时gb办法对模型
2条回答

在最好的情况下(二叉树),您将拥有3 * 200 * (2^30 - 1) = 644245094400个节点或{}假设每个节点只需存储1个字节。相比之下,140GB是一个相当不错的尺寸。在

编辑:数学不好。在

您可以尝试使用带有压缩参数的joblib。在

   from sklearn.externals import joblib
   joblib.dump(your_algo,  'pickle_file_name.pkl',compress=3)

压缩-从0到9。较高的值意味着更多的压缩,但读写时间也较慢。使用值3通常是一个很好的折衷方案。在

您可以使用python标准压缩模块zlib、gzip、bz2、lzma和xz。要使用它,您只需指定具有特定扩展名的格式

示例

^{pr2}$

更多信息,请参见[链接]:(http://gael-varoquaux.info/programming/new_low-overhead_persistence_in_joblib_for_big_data.html

相关问题 更多 >

    热门问题