使用网格搜索使用 h2o 进行深度学习模型时出错

时间:2021-06-19 14:27:04

标签: r deep-learning h2o

我有训练、验证和测试数据框。由于这些数据框很大,我不能在这里分享。

我想从包 h2o 中调整深度学习程序的参数。

代码主体如下:

train<-df2_input
 valid<-df3_input
 test<-df4_input
 
 response<-"realized1"
 features<-setdiff(colnames(train),"realized1") 

 h2o.init()
 train.h2o <- as.h2o(train) 
 valid.h2o <- as.h2o(valid) 
 test.h2o <- as.h2o(test) 
 
 
 activation_opt <- c("Rectifier","RectifierWithDropout", "Maxout","MaxoutWithDropout")
 hidden_opt <- list(c(10,10),c(20,15),c(50,50,50))
 
 l1_opt <- c(0,1e-3,1e-5)
 l2_opt <- c(0,1e-3,1e-5)
 
 hyper_params <- list( activation=activation_opt,
                       hidden=hidden_opt,
                       l1=l1_opt,
                       l2=l2_opt )
 
 #set search criteria
 search_criteria <- list(strategy = "RandomDiscrete", max_models=10)
 
 #train model
 
 dl_grid <- h2o.grid("deeplearning"
                     ,grid_id = "deep_learn"
                     ,hyper_params = hyper_params
                     ,search_criteria = search_criteria
                     ,training_frame = train.h2o
                     ,validation_frame = valid.h2o
                     ,x=features
                     ,y=response
                     ,epochs = 100)
 

但是,我收到以下错误:

ERROR: Unexpected HTTP Status code: 412 Precondition Failed (url = http://localhost:54321/99/Grid/deeplearning)

water.exceptions.H2OIllegalArgumentException
 [1] "water.exceptions.H2OIllegalArgumentException: Illegal argument: training_frame of function: grid: Cannot append new models to a grid with different training input"
 [2] "    hex.grid.GridSearch.loadFromDKV(GridSearch.java:171)"                                                                                                          
 [3] "    hex.grid.GridSearch.getOrCreateGrid(GridSearch.java:153)"                                                                                                      
 [4] "    hex.grid.GridSearch.start(GridSearch.java:104)"                                                                                                                
 [5] "    hex.grid.GridSearch.startGridSearch(GridSearch.java:769)"                                                                                                      
 [6] "    hex.grid.GridSearch.startGridSearch(GridSearch.java:648)"                                                                                                      
 [7] "    water.api.GridSearchHandler.trainGrid(GridSearchHandler.java:137)"                                                                                             
 [8] "    water.api.GridSearchHandler.handle(GridSearchHandler.java:53)"                                                                                                 
 [9] "    water.api.GridSearchHandler.handle(GridSearchHandler.java:39)"                                                                                                 
[10] "    water.api.RequestServer.serve(RequestServer.java:470)"                                                                                                         
[11] "    water.api.RequestServer.doGeneric(RequestServer.java:301)"                                                                                                     
[12] "    water.api.RequestServer.doPost(RequestServer.java:227)"                                                                                                        
[13] "    javax.servlet.http.HttpServlet.service(HttpServlet.java:707)"                                                                                                  
[14] "    javax.servlet.http.HttpServlet.service(HttpServlet.java:790)"                                                                                                  
[15] "    org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:865)"                                                                                        
[16] "    org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:535)"                                                                                    
[17] "    org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)"                                                                             
[18] "    org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1317)"                                                                            
[19] "    org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)"                                                                              
[20] "    org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)"                                                                                     
[21] "    org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)"                                                                              
[22] "    org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1219)"                                                                             
[23] "    org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)"                                                                                 
[24] "    org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:126)"                                                                         
[25] "    org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)"                                                                               
[26] "    water.webserver.jetty9.Jetty9ServerAdapter$LoginHandler.handle(Jetty9ServerAdapter.java:130)"                                                                  
[27] "    org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:126)"                                                                         
[28] "    org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)"                                                                               
[29] "    org.eclipse.jetty.server.Server.handle(Server.java:531)"                                                                                                       
[30] "    org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:352)"                                                                                             
[31] "    org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)"                                                                                   
[32] "    org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:281)"                                                                   
[33] "    org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:102)"                                                                                             
[34] "    org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)"                                                                                          
[35] "    org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)"                                                                        
[36] "    org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)"                                                                      
[37] "    org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)"                                                                     
[38] "    org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)"                                                                            
[39] "    org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)"                                                      
[40] "    org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:762)"                                                                              
[41] "    org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:680)"                                                                               
[42] "    java.lang.Thread.run(Unknown Source)"                                                                                                                          

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

ERROR MESSAGE:

Illegal argument: training_frame of function: grid: Cannot append new models to a grid with different training input

我发现了类似错误的以下主题probaby解决方案:

H2O "grid: Cannot append new models to a grid with different training input" error when parallelizing the execution of autoML in a foreach loop

但是,我无法解决该主题的问题。

0 个答案:

没有答案