【发布时间】:2018-04-01 19:16:14
【问题描述】:
我在使用 h2o.randomforest 时收到此错误。请参阅下面的函数调用和相关错误。
base_line_rf <- h2o.randomForest(x=2:ncol(train),
y=1,
ntrees = 10000,
mtries = ncol(train)-1,
training_frame = train,
model_id <- model_id,
stopping_rounds = 5,
stopping_tolerance = 0,
stopping_metric = "AUC",
binomial_double_trees = TRUE
)
错误:
java.lang.AssertionError: I am really confused about the heap usage; MEM_MAX=7624720384 heapUsedGC=7626295912
at water.MemoryManager.set_goals(MemoryManager.java:97)
at water.MemoryManager.malloc(MemoryManager.java:265)
at water.MemoryManager.malloc(MemoryManager.java:222)
at water.MemoryManager.malloc8d(MemoryManager.java:281)
at hex.tree.DHistogram.init(DHistogram.java:281)
at hex.tree.DHistogram.init(DHistogram.java:240)
at hex.tree.ScoreBuildHistogram2$ComputeHistoThread.computeChunk(ScoreBuildHistogram2.java:326)
at hex.tree.ScoreBuildHistogram2$ComputeHistoThread.map(ScoreBuildHistogram2.java:306)
at water.LocalMR.compute2(LocalMR.java:84)
at water.LocalMR.compute2(LocalMR.java:76)
at water.LocalMR.compute2(LocalMR.java:76)
at water.LocalMR.compute2(LocalMR.java:76)
at water.H2O$H2OCountedCompleter.compute(H2O.java:1255)
at jsr166y.CountedCompleter.exec(CountedCompleter.java:468)
at jsr166y.ForkJoinTask.doExec(ForkJoinTask.java:263)
at jsr166y.ForkJoinPool$WorkQueue.popAndExecAll(ForkJoinPool.java:904)
at jsr166y.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:977)
at jsr166y.ForkJoinPool.runWorker(ForkJoinPool.java:1477)
at jsr166y.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:104)
这个错误的原因是什么?
谢谢
【问题讨论】:
-
请提供带有样本数据的可重现示例:example
-
您可能需要更多内存,请查看this answer。
-
这是一个断言错误——断言默认是禁用的,所以你必须打开它们(为了调试?)。如果您再次关闭它们,它可能会起作用,但也有可能稍后会弹出另一个相关错误。
-
实际上,当您从 R 启动 H2O 时,默认情况下会启用断言,因此您可以尝试使用
h2o.init()和enable_assertions = FALSE将其关闭。