2017-10-20 5 views
1

Je reçois cette erreur lors de l'utilisation de h2o.randomforest. Veuillez voir l'appel de fonction et l'erreur associée ci-dessous.Erreur d'utilisation du tas à l'aide de 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 
) 

L'erreur:

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) 

Quelle est la raison de cette erreur?

Merci

+0

S'il vous plaît donner un exemple reproductible avec des échantillons de données: [exemple] (https://stackoverflow.com/a/5963610/4421870) – Mako212

+0

Vous avez probablement besoin de plus de mémoire, vérifiez [cette réponse] (https://stackoverflow.com/questions/45333883/h2o-server-crash). –

+0

Il s'agit d'une erreur d'assertion: les assertions sont désactivées par défaut. Vous devez donc les avoir activées (pour le débogage?). Si vous les désactivez à nouveau, cela peut fonctionner, mais il est également possible qu'une autre erreur connexe apparaisse plus tard. –

Répondre

1

Sur la base de votre problème, vous devez configurer groupe H2O pour fonctionner avec plus de mémoire pour l'adapter à votre arbre 10000 forêt aléatoire. On dirait que le cluster H2O (processus Java) est créé avec 8 Go de mémoire, mais en fonction de votre configuration 10000 arbre, il a besoin de plus de mémoire puis 8 Go.

max_mem_size 7624.720384 MB (Configured) 
heapUsedGC - 7626.295912 MB (Required) 

On dirait que vous utilisez H2O en R afin que vous puissiez passer max_mem_size = 12G (signifie groupe H2O commencera avec une mémoire de 12 Go) dans votre Fonction h2o.init() comme ci-dessous qui devrait répondre à vos besoins en forêt au hasard:

h2o.init(max_mem_size="12G") 

Vous pouvez également consulter les détails de votre cluster H2O avec la commande suivante:

> h2o.clusterInfo() 
R is connected to the H2O cluster: 
    H2O cluster uptime:   19 seconds 80 milliseconds 
    H2O cluster version:  3.14.0.3 
    H2O cluster version age: 27 days 
    H2O cluster name:   H2O_started_from_R_avkashchauhan_hwc594 
    H2O cluster total nodes: 1 
    H2O cluster total memory: 10.65 GB <=== This is the max memory size 
    H2O cluster total cores: 8 
    H2O cluster allowed cores: 8 
    H2O cluster healthy:  TRUE 
    H2O Connection ip:   localhost 
    H2O Connection port:  54321 
    H2O Connection proxy:  NA 
    H2O Internal Security:  FALSE 
    H2O API Extensions:   XGBoost, Algos, AutoML, Core V3, Core V4 
    R Version:     R version 3.4.1 (2017-06-30)