Error: barrier onExCompletion for hex.deeplearning.DeepLearning$DeepLearningDriver@16b31395

19 views
Skip to first unread message

Thushan Ganegedara

unread,
Aug 10, 2015, 2:40:48 AM8/10/15
to H2O Open Source Scalable Machine Learning - h2ostream
Hi,

I'm trying to split my training dataset to 2 different datasets (Training and Validation). I am using the following code snippet to do this.

double[] ratios = new double[]{trainFraction};

FrameSplitter fs = new FrameSplitter(shufFrame, ratios, generateNumKeys(shufFrame._key, ratios.length + 1), null);

H2O.submitTask(fs).join();

Frame[] splits = fs.getResult();


However, in certain cases (I tried different combinations of parameters but I couldn't figure out what is causing this) I get the following error during frame splitting
I have noticed that this doesn't occur if trainFraction = 0.5 but any other value can result in the error.

barrier onExCompletion for hex.deeplearning.DeepLearning$DeepLearningDriver@16b31395[2015-08-10 16:26:14,370]  INFO

java.lang.RuntimeException: java.lang.RuntimeException: java.lang.NullPointerException[2015-08-10 16:26:14,370]  INFO {org.wso2.carbon.ml.core.spark.algorithms.StackedAutoencodersClassifier} -  java.lang.RuntimeException: java.lang.NullPointerException

        at hex.deeplearning.DeepLearning$DeepLearningDriver.trainModel(DeepLearning.java:382)
        at hex.deeplearning.DeepLearning$DeepLearningDriver.buildModel(DeepLearning.java:232)
        at hex.deeplearning.DeepLearning$DeepLearningDriver.compute2(DeepLearning.java:146)
        at water.H2O$H2OCountedCompleter.compute(H2O.java:698)
        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)

        at hex.deeplearning.DeepLearningModel.doScoring(DeepLearningModel.java:710)
        at hex.deeplearning.DeepLearning$DeepLearningDriver.trainModel(DeepLearning.java:352)
        ... 8 more
Caused by: java.lang.NullPointerException
        at hex.ScoreKeeper.fillFrom(ScoreKeeper.java:42)
        at hex.ScoreKeeper.<init>(ScoreKeeper.java:25)
        at hex.deeplearning.DeepLearningModel.doScoring(DeepLearningModel.java:596)
        ... 9 more

Michal Malohlava

unread,
Aug 10, 2015, 1:45:25 PM8/10/15
to h2os...@googlegroups.com
Hi Thushan,


Dne 8/9/15 v 11:40 PM Thushan Ganegedara napsal(a):
Hi,

I'm trying to split my training dataset to 2 different datasets (Training and Validation). I am using the following code snippet to do this.

double[] ratios = new double[]{trainFraction};

FrameSplitter fs = new FrameSplitter(shufFrame, ratios, generateNumKeys(shufFrame._key, ratios.length + 1), null);

H2O.submitTask(fs).join();

Frame[] splits = fs.getResult();


However, in certain cases (I tried different combinations of parameters but I couldn't figure out what is causing this) I get the following error during frame splitting
I have noticed that this doesn't occur if trainFraction = 0.5 but any other value can result in the error.
Can you please provide more details about your dataset and h2o version?
I tried to execute code  similar to your on our cluster:
val splitter = new FrameSplitter(df, Array(0.8f), Array("train", "test"), null)
water.H2O.submitTask(splitter)
val result = splitter.getResult

And it works for any ration.

Probably we are missing some data corner-case during splitting.

btw: there is also hex.splitframe.ShuffleSplitFrame class which can be used for splitting.

michal

barrier onExCompletion for hex.deeplearning.DeepLearning$DeepLearningDriver@16b31395[2015-08-10 16:26:14,370]  INFO

java.lang.RuntimeException: java.lang.RuntimeException: java.lang.NullPointerException[2015-08-10 16:26:14,370]  INFO {org.wso2.carbon.ml.core.spark.algorithms.StackedAutoencodersClassifier} -  java.lang.RuntimeException: java.lang.NullPointerException

        at hex.deeplearning.DeepLearning$DeepLearningDriver.trainModel(DeepLearning.java:382)
        at hex.deeplearning.DeepLearning$DeepLearningDriver.buildModel(DeepLearning.java:232)
        at hex.deeplearning.DeepLearning$DeepLearningDriver.compute2(DeepLearning.java:146)
        at water.H2O$H2OCountedCompleter.compute(H2O.java:698)
        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)

        at hex.deeplearning.DeepLearningModel.doScoring(DeepLearningModel.java:710)
        at hex.deeplearning.DeepLearning$DeepLearningDriver.trainModel(DeepLearning.java:352)
        ... 8 more
Caused by: java.lang.NullPointerException
        at hex.ScoreKeeper.fillFrom(ScoreKeeper.java:42)
        at hex.ScoreKeeper.<init>(ScoreKeeper.java:25)
        at hex.deeplearning.DeepLearningModel.doScoring(DeepLearningModel.java:596)
        ... 9 more
--
You received this message because you are subscribed to the Google Groups "H2O Open Source Scalable Machine Learning - h2ostream" group.
To unsubscribe from this group and stop receiving emails from it, send an email to h2ostream+...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Thushan Ganegedara

unread,
Aug 12, 2015, 8:07:46 PM8/12/15
to H2O Open Source Scalable Machine Learning - h2ostream, mic...@h2oai.com
Hello Michal,

Sorry about the delay. I was trying to replicate the error, however, I have trouble getting the code to produce the error.

However, I switched to the ShuffleSplitFrame and seems to be working perfectly well so far.

I will try few more times to reproduce the error.
Reply all
Reply to author
Forward
0 new messages