我是h2o R版本用户,我对h2o本地群集有疑问。我通过执行r,
中的命令来设置集群 h2o.init()
但是,当我不使用它几个小时时,群集将自动关闭。例如,我在夜间运行我的模型,但是当我早上回到办公室检查我的模型时。它说,
Error in h2o.getConnection() : No active connection to an H2O cluster. Did you runh2o.init()?
有没有办法解决或解决它?
答案 0 :(得分:1)
如果H2O群集仍在运行,那么您的模型仍然存在(假设他们已成功完成培训)。有许多方法可以检查H2O Java集群是否仍在运行。在R中,您可以检查这些函数的输出:
h2o.clusterStatus()
h2o.clusterInfo()
在命令行(查找Java进程):
ps aux | grep java
如果您从R开始使用H2O,那么您应该会看到如下所示的行:
yourusername 26215 0.0 2.7 8353760 454128 ?? S 9:41PM 21:25.33 /usr/bin/java -ea -cp /Library/Frameworks/R.framework/Versions/3.3/Resources/library/h2o/java/h2o.jar water.H2OApp -name H2O_started_from_R_me_iqv833 -ip localhost -port 54321 -ice_root /var/folders/2j/jg4sl53d5q53tc2_nzm9fz5h0000gn/T//Rtmp6XG99X
H2O模型不存在于R环境中,它们位于H2O集群(Java进程)中。听起来正如所发生的那样,表示模型的R对象(实际上只是指向H2O集群中模型的指针)在集群断开连接时遇到了查找模型的问题。我不确切知道发生了什么,因为当您尝试使用h2o.predict()
或h2o.performance()
时,您还没有发布您收到的错误。
要恢复模型,可以使用h2o.getModel()
功能。您需要知道模型的ID。如果您的模型对象(无法正常工作)仍可访问,那么您可以通过以下方式轻松查看模型ID:model@model_id
您还可以在浏览器中转到H2O Flow(输入:http://127.0.0.1:54321如果您使用默认值启动H2O)并按ID查看所有模型。
知道模型ID后,请执行以下操作刷新模型:
model <- h2o.getModel("model_id")
这应该重新建立与模型的连接,h2o.predict()
和h2o.performance()
函数应该再次起作用。