out-of-memory - sklearn-porter export() 抛出 MemoryError
问题描述
我正在尝试使用将我的RandomForestClassifier
模型导出到 Java 中sklearn-porter
,但内存不足。我怎样才能解决这个问题?Linux 进程增长到大约 10+G,然后失败 - 机器有 24G 可用。
训练集有大约 250 万个元素,并且随着我们针对更多类进行分类,其规模可能会增加。该模型有 20 个特征(可能会减少)。目前我们已经让树木尽可能地长得更深。我不想限制树的深度以使其导出到 Java。
相关文章:Darius Morawiec在将 python sklearn 模型导出到生产环境 (java/c++)中的回应
代码:
# train the forest
rfcf.fit(x_train, y_train)
# export
porter = Porter(rfcf, language='java')
output = porter.export(embed_data=True)
print(output)
顺便说一句,我现在将机器内存增加到 52GB 后重试。
更新:运行约 30 分钟后,它再次因 MemoryError 而失败。
顺便说一句,我还应该补充一点,在具有 24G RAM 的机器上,通过 sklean2pmml 以详细的 PMML 格式成功导出了相同的模型。也可以在合理的时间内(约 30 分钟)完成模型的酸洗,但这些文件非常大(2-6 GB。)
解决方案
推荐阅读
- reactjs - 带有 Socket io 的 Redux 中间件
- ios - 尝试从 json 数据加载图像 url 时索引超出范围
- groovy - methodMissing 的 Groovy 缓存不起作用
- node.js - npx create-react-app 返回“超出最大调用堆栈大小”
- latex - 如何在 p5.js 中显示漂亮的数学方程式?
- kubernetes-helm - 是否有任何选项告诉 helm 不要等到安装后挂钩完成?
- sql - 执行存储在表列中的 SQL 语句
- python - 存储 flask-jwt 身份验证令牌。我可以/我应该存储在数据库中吗?
- python - 当我尝试运行代码时,它会出错
- bigcommerce - 有没有办法从 BigCommerce 的单个页面中删除站点导航?