2017-05-29 68 views
1

我尝试R中跑水的Automl:h2o.automl()抛出java.lang.NullPointerException中的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) 

但是当我运行在第二次前面的代码它显示:

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 

一些人能解释我,给我这个解决方案时,我必须为不同的数据集做循环?

+0

这不是一个重复的例子,并且不提供H2O版本信息。由于H2O的AutoML在H2O的稳定版本中尚不可用,因此在Stack Overflow上提交错误可能有点为时过早。如果你可以下载最新的夜间版本('build_control'已经从你的版本中删除),并提供一个可重复的例子,我可以提供帮助。 –

回答

1

在不同的数据集循环执行AutoML应该(通过这个pull request作为前两天)工作。在此之前,AutoML project_name是硬编码的,所以每次运行AutoML时,都会尝试将新模型附加到同一个项目。一个项目是由训练集定义的,所以这就是你得到这个错误的原因。

运行相同的代码,现在应该不会再产生错误。现在,项目名称创建自动根据您的训练集,或者你也可以使用h2o.automl()project_name参数定义自定义项目名称。

+0

我今天在'h2o_3.17.0.4198'上有这个错误,当重新运行保存的数据和代码来重现一个模型对象时。设置'project_name'后我仍然有错误。这是一个版本问题?在两次会议之间H2O已经完全关闭了几天,但错误与OP几乎相同。这是一个单独的问题还是相同的? –

+0

空指针异常可能是由各种各样的事情引起的。我建议发布一个可重复的例子作为一个单独的问题,所以我们可以看看。我也建议升级到H2O,3.18.0.1的最新版本:http://h2o-release.s3.amazonaws.com/h2o/rel-wolpert/1/index.html –

+0

谢谢!我尝试了更新。它没有工作,所以我会回到你的旧套件,直到有足够时间深入潜水。 –

相关问题