关闭 h2o 后访问 h2o 模型时出现问题

Problem in accessing h2o models after shutting h2o down

I 运行 使用 R 的 h2o automl 函数,如帮助和文档页面中所述(由 typing ?h2o.automl 访问)。脚本如下:

library(h2o)
h2o.init()
votes_path <- system.file("extdata", "housevotes.csv", package = "h2o")
votes_hf <- h2o.uploadFile(path = votes_path, header = TRUE)
aml <- h2o.automl(y = "Class", training_frame = votes_hf, max_runtime_secs = 30)

h2o 完成学习阶段后,我可以使用

检索其模型的 auc 指标
auc <- as.vector(aml@leaderboard[,"auc"])

然后我使用

保存了我的会话供以后使用
save.image("automl_models.RData")

问题是,在h2o实例发生变化后,auc检索不再成功,例如触发了h2o关闭功能或关闭了R会话。即使在我使用 h2o.init() 重新激活 h2o 实例后,这种情况仍然发生。我现在所做的是,在完成学习后立即保存 h2o.automl() 提供的每个模型。

我尝试访问auc时出现的错误信息是:

ERROR: Unexpected HTTP Status code: 400 Bad Request (url = http://localhost:54321/99/Rapids)
Error in .h2o.doSafeREST(h2oRestApiVersion = h2oRestApiVersion, urlSuffix = page,  : 


ERROR MESSAGE:

Name lookup of 'RTMP_sid_978c_5' failed

我想知道这是否是正确的方法,或者我仍然有机会通过仅加载保存在 R 环境中的 h2o 变量来访问 h2o.automl() 结果。 仅供参考,我的系统是:

H2O cluster version:        3.23.0.4468
R Version:                  R version 3.6.0 (2019-04-26)

谢谢。

R 环境实际上并不包含 H2O-3 模型。

R 只是 H2O 的前端。 H2O-3 后端是一个 java 进程,它在内存中存储数据和模型。

R 前端和 H2O-3 java 后端如何交互请看这里的图片:

因此,您需要使用 h2o.saveModel 和 h2o.loadModel 方法保存和恢复它们 to/from 磁盘:

如果不这样做,第二次调用 h2o.init()(假设 java 进程还没有 运行)将只有 "blank" H2O-3 java 内存中还没有任何内容的进程。