2016-02-28 4 views
0

Я пытаюсь разрешить ошибку, которую я просматриваю при использовании h2o.predict.Ошибка при использовании h2o.predict с глубоким обучением в качестве модели в R

Вот установка проблема:

#If you type class(DL.Model) then output is as follows: 
[1] "H2OMultinomialModel" 
    attr(,"package") 
    [1] "h2o" 

xTest <- as.h2o(xTest) # xTest is data frame in R 
DL.pred <- h2o.predict(DL.Model, xTest) 

ERROR: Unexpected HTTP Status code: 404 Not Found (url = http://localhost:54321/3/Predictions/models/DeepLearning_model_R_1449882914034_72/frames/file1ca3d488cb1_csv_61.hex_62) 

water.exceptions.H2OKeyNotFoundArgumentException 
[1] "water.api.ModelMetricsHandler.predict(ModelMetricsHandler.java:209)"     
[2] "sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)"       
[3] "sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)"   
[4] "sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)" 
[5] "java.lang.reflect.Method.invoke(Method.java:497)"          
[6] "water.api.Handler.handle(Handler.java:64)"            
[7] "water.api.RequestServer.handle(RequestServer.java:644)"        
[8] "water.api.RequestServer.serve(RequestServer.java:585)"         
[9] "water.JettyHTTPD$H2oDefaultServlet.doGeneric(JettyHTTPD.java:617)"      
[10] "water.JettyHTTPD$H2oDefaultServlet.doPost(JettyHTTPD.java:565)"      
[11] "javax.servlet.http.HttpServlet.service(HttpServlet.java:755)"       
[12] "javax.servlet.http.HttpServlet.service(HttpServlet.java:848)"       
[13] "org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:684)"    

Error in .h2o.doSafeREST(h2oRestApiVersion = h2oRestApiVersion, urlSuffix = page, : 
    Object 'DeepLearning_model_R_1449882914034_72' not found in function: predict for argument: model 

Любые указатели на то, что может быть здесь происходит? Я вижу, что существует некоторое связанное сообщение об ошибке в другом question, но предлагаемое решение также не помогает. Я использую H2O версии 3.6.0.8.

Если мы посмотрим на журналы как предложено here, последние семь рядов бревна показано ниже:

065c 4861 a7b3 cea6 7505 00bd fd05 0031 
0000 0000 0000 0000 0000 0000 0048 0000 
0068 326f 6c6f 6773 5f32 3031 3630 3232 
385f 3132 3530 3233 2f6e 6f64 6530 5f31 
3237 2e30 2e30 2e31 5f35 3433 3231 2e7a 
6970 504b 0506 0000 0000 0200 0200 a500 
0000 4d76 0500 0000 
+0

Вы тренировали эту модель в текущей сессии R? Или он был сохранен и перезагружен с использованием 'h2o.saveModel' и' h2o.loadModel'? Похоже, что H2O не может найти DL-модель. –

+0

Вот MWE: у меня несколько моделей глубокого обучения h2o (скажем, DL.Model1, DL.Model2, DL.Model3 для аргумента), и они доступны в списке «allModels» следующим образом: allModels [[1]] <- DL.Model1, allModels [[2]] <- DL.Model2, allModels [[3]] <- DL.Model3. Поскольку «allModels» - это список, я сохраняю его как объект R, используя save. Чтобы получить доступ к моделям позже, я загружаю файл allModels.RData в сеанс R: Как проверка работоспособности, после загрузки allModels.RData, я проверяю класс (allModels [[1]]), выход которого «H2OMultinomialModel ", attr (," package ")," h2o " – skaur

ответ

2

на основе ваших комментариев, причина того, что ваши модели не могут быть найдены, потому что вы не сделали правильно сохраните их на диск. Все объекты H2O (включая модели) существуют в памяти в кластере H2O, и если вы хотите сохранить/сериализовать их на диск, вы должны использовать функцию h2o.saveModel, а не встроенную функцию R save. Функция R save может сохранять объекты только в памяти R.

Для загрузки модели используйте h2o.loadModel.

+0

После выполнения h2o.saveModel и h2o.loadModel, я столкнулся с другой проблемой, о которой я сообщил [здесь] (http://stackoverflow.com/q/ 35735675/2288396? СЭМ = 2) – skaur

 Смежные вопросы

  • Нет связанных вопросов^_^