Python H2O内存管理

7

与此R问题类似 here,在H2O中运行带有网格搜索的循环时,我遇到了内存不足的问题。在R中,在每个循环期间执行gc()确实有所帮助。这里的建议解决方案是什么?


1
请更新一个代码示例,说明你的循环是如何设置的。 - Erin LeDell
1
你尝试过 h2o.remove_all() 或者 h2o.remove(x) 吗? - Lauren
我认为他们不想使用 h2o.remove_all(),因为这会从 H2O 集群中删除所有内容,包括所有数据和模型... - Erin LeDell
此外,我们建议使用H2OGridSearch方法来代替编写循环(除非您有特定的原因)。 - Erin LeDell
我正在使用H2OGridSearch,但是针对不同的特征,因此我正在使用循环遍历不同的转换和特征,保存网格搜索的最佳模型并重复执行。在这种情况下,我想remove_all()有意义,谢谢。 - user90772
1个回答

7
Python API中似乎没有`h2o.gc()`函数。请参阅FAQ中的"How can I debug memory issues?"一节。如果您怀疑问题是后端持有不再需要的内存,可以直接使用REST API提交后端命令(GarbageCollect)。仔细研究详细日志可能有助于确认这是否是问题所在。
汇总评论中的建议:
  • 在循环结束时对不再需要的H2O框架和模型使用h2o.remove()
  • 如果您不需要保留任何内容,并且您的循环将重新加载所有所需数据,请使用h2o.removeAll()
  • 使用H2OGridSearch而不是自己的循环和网格代码。
另外,请注意,cbind、rbind以及修改H2O框架的任何函数都将复制整个框架。有时重新考虑数据操作步骤的方式可以减少内存需求。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接