2016-07-21 3 views
0

저는 h2o 라이브러리를 사용하여 Rstudio에서 임의의 포리스트 모델을 교육 한 다음 .rda 파일로 저장했습니다. 이제 modelt를 사용하여 다른 데이터에 점수를 매기고 싶습니다. 그래서 모델을로드 한 후 H2OFrame에서 새 데이터 세트를 돌려서 predict(model, new_data) 함수를 사용하여 점수를 얻으려고합니다. 내가 ... 무슨 일이 잘못에 대한 어떤 생각을 H2O에 새로 온 사람h2o.randomForest에 대한 예측 모델 저장

ERROR: Unexpected HTTP Status code: 404 Not Found (url = http://localhost:54321/4/Predictions/models/DRF_model_R_1468754145815_1/frames/file1840210c1889_sid_9b90_2) 

water.exceptions.H2OKeyNotFoundArgumentException 
[1] "water.exceptions.H2OKeyNotFoundArgumentException: Object 'DRF_model_R_1468754145815_1' not found in function: predict for argument: model" 
[2] " water.api.ModelMetricsHandler.predict2(ModelMetricsHandler.java:239)"                 
[3] " sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)"                   
[4] " sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)"               
[5] " sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)"             
[6] " java.lang.reflect.Method.invoke(Method.java:498)"                      
[7] " water.api.Handler.handle(Handler.java:62)"                        
[8] " water.api.RequestServer.handle(RequestServer.java:655)"                    
[9] " water.api.RequestServer.serve(RequestServer.java:596)"                     
[10] " water.JettyHTTPD$H2oDefaultServlet.doGeneric(JettyHTTPD.java:745)"                  
[11] " water.JettyHTTPD$H2oDefaultServlet.doPost(JettyHTTPD.java:681)"                  
[12] " javax.servlet.http.HttpServlet.service(HttpServlet.java:755)"                   
[13] " javax.servlet.http.HttpServlet.service(HttpServlet.java:848)"                   
[14] " org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:684)"                
[15] " org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:503)"               
[16] " org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)"               
[17] " org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557)"               
[18] " org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)"              
[19] " org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)"             
[20] " org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:429)"                
[21] " org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)"              
[22] " org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)"              
[23] " org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)"               
[24] " org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154)"             
[25] " org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)"              
[26] " org.eclipse.jetty.server.Server.handle(Server.java:370)"                    
[27] " org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:494)"          
[28] " org.eclipse.jetty.server.BlockingHttpConnection.handleRequest(BlockingHttpConnection.java:53)"           
[29] " org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:971)"          
[30] " org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1033)"      
[31] " org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:644)"                  
[32] " org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)"                 
[33] " org.eclipse.jetty.server.BlockingHttpConnection.handle(BlockingHttpConnection.java:72)"            
[34] " org.eclipse.jetty.server.bio.SocketConnector$ConnectorEndPoint.run(SocketConnector.java:264)"           
[35] " org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)"              
[36] " org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)"              
[37] " java.lang.Thread.run(Thread.java:745)"                         

Error in .h2o.doSafeREST(h2oRestApiVersion = h2oRestApiVersion, urlSuffix = page, : 


ERROR MESSAGE: 

Object 'DRF_model_R_1468754145815_1' not found in function: predict for argument: model 

: 는 내가 뭘 얻을 것은 다음과 같은 오류 메시지가 무엇입니까?

답변

1

R 내부에서 rda 파일로 저장할 수 없습니다. 모델은 H2O 클러스터에 있으며, h2o.saveModel()을 사용하여 저장해야합니다. 그리고 다시로드하려면 h2o.loadModel(). ?h2o.saveModel?h2o.loadModel을 참조하십시오.

참고 사항 : 함수 사이의 비대칭 성을 주목하십시오. saveModel에 디렉토리를 지정하고 파일 이름을 loadModel에 지정합니다. (파일명은 모델 ID입니다.)

+0

ok thanks! 그러나 이것은 모델을 다시 저장해야만합니다. 아니면 내가 오래된 모델을로드하고'h2o.loadModel()'을 사용하여 저장할 수 있습니까? (모델 훈련이 마지막으로 17 시간이 걸렸을 때) –

+0

@FrancescoDalPont h2o.saveModel()을 사용하지 않았다면 그것을로드 할 수 없으므로 다시 만들어야합니다. 죄송합니다! 모델이 훈련하는 데 오랜 시간이 걸리면 체크 포인트를 살펴보십시오. 처음 50 개의 나무를 만들고 그 모델을 저장하면서 학습을 계속할 수 있습니다. 그리고 이것을 매 50 그루의 나무마다 반복하십시오. (또는 매 시간마다 - 한 시간 만에 많은 나무를 만들 수 있습니다.) 또한 일단 모델이 충분히 적합하면 멈추십시오. –