R H2O轮询错误消息

问题描述 投票:3回答:3

我正在尝试通过R在H2O中运行gbm模型,并出现以下错误之一:

  |==========================                                                                               |  25%
Polling fails:
<simpleError in .h2o.__poll(client, job_key): Got exception 'class java.lang.RuntimeException', with msg 'java.lang.AssertionError: NewChunk.dst.len = 0, oc._len = 1235'
java.lang.RuntimeException: java.lang.AssertionError: NewChunk.dst.len = 0, oc._len = 1235
    at hex.FrameExtractor.getResult(FrameExtractor.java:77)
    at water.util.CrossValUtils.crossValidate(CrossValUtils.java:29)
    at hex.gbm.GBM.execImpl(GBM.java:201)
    at water.Func.exec(Func.java:42)
    at water.Job$3.compute2(Job.java:333)
    at water.H2O$H2OCountedCompleter.compute(H2O.java:647)
    at jsr166y.CountedCompleter.exec(CountedCompleter.java:429)
    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)
Caused by: java.lang.AssertionError: NewChunk.dst.len = 0, oc._len = 1235
    at water.fvec.ChunkSplitter.extractChunkPart(ChunkSplitter.java:44)
    at hex.NFoldFrameExtractor$FoldExtractTask.map(NFoldFrameExtractor.java:105)
    at water.MRTask2.compute2(MRTask2.java:404)
    ... 6 more
>
  |=========================================================================================================| 100%
Error in .h2o.__remoteSend(data@h2o, model_view, `_modelKey` = xvalKey[i]) : 
  http://127.0.0.1:54321/2/GBMModelView.json  returned the following error:
   Model 'GBM_a1b17d68e29d7ba49cb6243293344b69_xval0' not found!

或此版本:

  |===================                                                         |  25%
Polling fails:
<simpleError in .h2o.__poll(client, job_key): Got exception 'class java.lang.AssertionError', with msg 'null'
java.lang.AssertionError
    at hex.gbm.GBM.buildNextKTrees(GBM.java:505)
    at hex.gbm.GBM.buildModel(GBM.java:296)
    at hex.gbm.GBM.buildModel(GBM.java:26)
    at hex.gbm.SharedTreeModelBuilder.buildModel(SharedTreeModelBuilder.java:276)
    at hex.gbm.GBM.execImpl(GBM.java:200)
    at water.Func.exec(Func.java:42)
    at water.Job.invoke(Job.java:353)
    at water.Job$ValidatedJob.genericCrossValidation(Job.java:889)
    at hex.gbm.GBM.crossValidate(GBM.java:709)
    at water.util.CrossValUtils.crossValidate(CrossValUtils.java:32)
    at hex.gbm.GBM.execImpl(GBM.java:201)
    at water.Func.exec(Func.java:42)
    at water.Job$3.compute2(Job.java:333)
    at water.H2O$H2OCountedCompleter.compute(H2O.java:647)
    at jsr166y.CountedCompleter.exec(CountedCompleter.java:429)
    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)
>
  |============================================================================| 100%
Error in tail(res$cms, 1)[[1]] : subscript out of bounds

这里是导致错误的行:

  dat1.gbm <- h2o.gbm(y = 'click_target2', x = xVars, data = train1.hex
                      , nfolds = 3
                      , importance = T
                      , distribution = 'bernoulli' 
                      , n.trees = 200
                      , interaction.depth = 10,
                      # , n.minobsinnode = 2
                      , shrinkage = 0.01
  )

有关导致此错误的原因的任何建议?

编辑:

我一直在尝试诊断csv文件本身是否存在问题,看来这可能是问题所在。我最终在python中编写了一个脚本,以便按week_number将大文件分成单个的csv文件。在读取文件的过程中,大约2/3出现了NULL字节异常错误。我仍在努力寻找解决方法。

java r h2o
3个回答
1
投票

我看到失败发生在crossValidate()方法中。最新版本的H2O(H2O-3)中的交叉验证实现已被重写。

尝试从此处下载最新的稳定版本:http://h2o.ai/download

但是我看不到原始文章中任何地方的数据访问方式,因此无法验证问题是否已解决。


0
投票

尝试重新安装Java(https://java.com/en/download/windows-64bit.jsp)。我对H2O-3.20.0.1遇到了同样的问题,它对我有用!


0
投票

我也有错误Error: java.lang.AssertionError:,对我有用的解决方案是enable_assertions = FALSE中有h2o.init

library(h2o)
h2o.init(nthreads = 12, max_mem_size = "64g", enable_assertions = FALSE)

从h2o文档中:

enable_assertions :(可选)一个逻辑值,指示是否应在启用断言的情况下启动H2O。主要用于错误检查和调试。

© www.soinside.com 2019 - 2024. All rights reserved.