Reputation: 31
I try to run Automl of h2o in R:
data_train_hex=as.h2o(data_train)
data_val_hex=as.h2o(data_val)
automl <-h2o.automl(x=training_vars,y=targetvar, training_frame= data_train_hex
,validation_frame = data_val_hex
,build_control = NULL, max_runtime_secs = 30)
but when I run previous code in second time it's displayed:
java.lang.NullPointerException
at hex.StackedEnsembleModel.predictScoreImpl(StackedEnsembleModel.java:117)
at hex.Model.score(Model.java:1076)
at hex.Model.score(Model.java:1044)
at ai.h2o.automl.Leaderboard$1.atomic(Leaderboard.java:207)
at ai.h2o.automl.Leaderboard$1.atomic(Leaderboard.java:176)
at water.TAtomic.atomic(TAtomic.java:17)
at water.Atomic.compute2(Atomic.java:56)
at water.Atomic.fork(Atomic.java:39)
at water.Atomic.invoke(Atomic.java:31)
at ai.h2o.automl.Leaderboard.addModels(Leaderboard.java:176)
at ai.h2o.automl.Leaderboard.addModel(Leaderboard.java:273)
at ai.h2o.automl.AutoML.addModel(AutoML.java:1043)
at ai.h2o.automl.AutoML.pollAndUpdateProgress(AutoML.java:425)
at ai.h2o.automl.AutoML.learn(AutoML.java:911)
at ai.h2o.automl.AutoML.run(AutoML.java:326)
at ai.h2o.automl.H2OJob$1.compute2(H2OJob.java:32)
at water.H2O$H2OCountedCompleter.compute(H2O.java:1314)
at jsr166y.CountedCompleter.exec(CountedCompleter.java:468)
at jsr166y.ForkJoinTask.doExec(ForkJoinTask.java:263)
at jsr166y.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:974)
at jsr166y.ForkJoinPool.runWorker(ForkJoinPool.java:1477)
at jsr166y.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:104)
Error: java.lang.NullPointerException
Can some one explain me, and give me solution for that when I must do loop for different dataset?
Upvotes: 3
Views: 1312
Reputation: 8819
Running AutoML in a loop on different datasets should work (as of two days ago via this pull request). Prior to that, the AutoML project_name
was hardcoded so that every time you ran AutoML, it would try to append new models to the same project. A project is defined by the training set, so this is why you were getting the error.
Running that same code now should no longer produce an error. Now a project name is created automatically based on your training set, or you can also define a custom project name using the new project_name
argument of h2o.automl()
.
Upvotes: 2