Проблема с доступом к моделям H2O после выключения H2O - PullRequest
0 голосов
/ 01 ноября 2019

Я запускаю функцию h2o automl, используя R, как описано на странице справки и документации (доступ к которой 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 <- as.vector(aml@leaderboard[,"auc"])

Затем я сохранил сеанс для дальнейшего использования, используя

save.image("automl_models.RData")

Проблема в том, что получение auc больше не завершалось успешно после изменения экземпляра h2o, например, из-за того, что была запущена функция выключения h2o или был закрыт сеанс R. Это все еще происходило даже после того, как я повторно активировал экземпляр h2o, используя h2o.init(). Теперь я сохраняю каждую модель, предоставленную 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

Я хотел бы знать, если это правильный путь, или все еще есть шанс, что я могу иметь доступ к h2o.automl() результаты только при загрузке переменных h2o, сохраненных в среде R. К вашему сведению, мои системы:

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

Спасибо.

1 Ответ

1 голос
/ 01 ноября 2019

Среда R на самом деле не содержит моделей H2O-3.

R - это просто интерфейс для H2O. Back-end H2O-3 - это Java-процесс, который хранит данные и модель в памяти.

См. Рисунок здесь, чтобы узнать, как взаимодействуют внешний интерфейс R и Java-интерфейс H2O-3:

Таким образом, вам нужно сохранять и восстанавливать их на / с диска с помощью методов h2o.saveModel и h2o.loadModel:

Без этого при повторном вызове h2o.init () (при условии, что процесс Java еще не запущен) будет просто иметь «пустой» процесс Java H2O-3. пока в памяти ничего нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...