【问题标题】:Problem in accessing h2o models after shutting h2o down关闭 h2o 后访问 h2o 模型的问题
【发布时间】:2019-11-01 02:21:17
【问题描述】:

我使用 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 automl


    【解决方案1】:

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

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

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

    因此,您需要使用 h2o.saveModel 和 h2o.loadModel 方法将它们保存到磁盘或从磁盘中恢复它们:

    如果不这样做,第二次调用 h2o.init()(假设 java 进程尚未运行)将只有一个“空白”H2O-3 java 进程,内存中没有任何内容。

    【讨论】:

    • 非常感谢 TomKraljevic。我现在有了更清楚的认识。您的前两句话价值数百个 h2o 手册页。
    猜你喜欢
    • 2020-11-20
    • 1970-01-01
    • 1970-01-01
    • 2017-10-17
    • 2017-11-01
    • 1970-01-01
    • 2021-09-02
    • 2021-12-24
    • 1970-01-01
    相关资源
    最近更新 更多