ASSA
ASSA

Reputation: 31

h2o.automl() throws java.lang.NullPointerException in R

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

Answers (1)

Erin LeDell
Erin LeDell

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

Related Questions