diff --git a/.travis.yml b/.travis.yml index c0faccb06..3eafab2a0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -47,6 +47,7 @@ addons: before_install: - source dmlc-core/scripts/travis/travis_setup_env.sh - export PYTHONPATH=${PYTHONPATH}:${PWD}/python-package + - echo "MAVEN_OPTS='-Xmx2048m -XX:MaxPermSize=1024m -XX:ReservedCodeCacheSize=512m'" > ~/.mavenrc install: - source tests/travis/setup.sh diff --git a/dmlc-core b/dmlc-core index 3f6ff43d3..71360023d 160000 --- a/dmlc-core +++ b/dmlc-core @@ -1 +1 @@ -Subproject commit 3f6ff43d3976d5b6d5001608b0e3e526ecde098f +Subproject commit 71360023dba458bdc9f1bc6f4309c1a107cb83a0 diff --git a/jvm-packages/checkstyle-suppressions.xml b/jvm-packages/checkstyle-suppressions.xml index 21550e139..4a0f9ab33 100644 --- a/jvm-packages/checkstyle-suppressions.xml +++ b/jvm-packages/checkstyle-suppressions.xml @@ -29,5 +29,5 @@ +files="xgboost4j/src/main/java/ml/dmlc/xgboost4j/java/XGBoostJNI.java"/> diff --git a/jvm-packages/pom.xml b/jvm-packages/pom.xml index 8228d6712..ce9883059 100644 --- a/jvm-packages/pom.xml +++ b/jvm-packages/pom.xml @@ -4,7 +4,7 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - org.dmlc + ml.dmlc xgboostjvm 0.1 pom @@ -14,12 +14,13 @@ 1.7 1.7 3.3.9 - 2.11.7 - 2.11 + 2.10.5 + 2.10 xgboost4j xgboost4j-demo + xgboost4j-spark @@ -100,6 +101,7 @@ jar-with-dependencies + true diff --git a/jvm-packages/scalastyle-config.xml b/jvm-packages/scalastyle-config.xml index 204b72a20..fd4d22e9a 100644 --- a/jvm-packages/scalastyle-config.xml +++ b/jvm-packages/scalastyle-config.xml @@ -188,8 +188,8 @@ This file is divided into 3 sections: java,scala,3rdParty,spark javax?\..* scala\..* - (?!org\.apache\.spark\.).* - org\.apache\.spark\..* + (?!ml\.dmlc\.xgboost4j\.).* + ml.dmlc.xgboost4j.* diff --git a/jvm-packages/test_distributed.sh b/jvm-packages/test_distributed.sh index c9a5b21be..b17f6a3b3 100755 --- a/jvm-packages/test_distributed.sh +++ b/jvm-packages/test_distributed.sh @@ -1,5 +1,5 @@ #!/bin/bash # Simple script to test distributed version, to be deleted later. -cd xgboost4j-demo -java -XX:OnError="gdb - %p" -cp target/xgboost4j-demo-0.1-jar-with-dependencies.jar ml.dmlc.xgboost4j.demo.DistTrain 4 +cd xgboost4j-flink +flink run -c ml.dmlc.xgboost4j.flink.Test -p 4 target/xgboost4j-flink-0.1-jar-with-dependencies.jar cd .. diff --git a/jvm-packages/xgboost4j-demo/pom.xml b/jvm-packages/xgboost4j-demo/pom.xml index d8e679b78..bef184adb 100644 --- a/jvm-packages/xgboost4j-demo/pom.xml +++ b/jvm-packages/xgboost4j-demo/pom.xml @@ -4,16 +4,27 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - org.dmlc + ml.dmlc xgboostjvm 0.1 xgboost4j-demo 0.1 jar + + + + org.apache.maven.plugins + maven-assembly-plugin + + false + + + + - org.dmlc + ml.dmlc xgboost4j 0.1 diff --git a/jvm-packages/xgboost4j-demo/src/main/java/ml/dmlc/xgboost4j/demo/BasicWalkThrough.java b/jvm-packages/xgboost4j-demo/src/main/java/ml/dmlc/xgboost4j/java/demo/BasicWalkThrough.java similarity index 93% rename from jvm-packages/xgboost4j-demo/src/main/java/ml/dmlc/xgboost4j/demo/BasicWalkThrough.java rename to jvm-packages/xgboost4j-demo/src/main/java/ml/dmlc/xgboost4j/java/demo/BasicWalkThrough.java index af5dd8a86..b0de7d0e0 100644 --- a/jvm-packages/xgboost4j-demo/src/main/java/ml/dmlc/xgboost4j/demo/BasicWalkThrough.java +++ b/jvm-packages/xgboost4j-demo/src/main/java/ml/dmlc/xgboost4j/java/demo/BasicWalkThrough.java @@ -13,18 +13,18 @@ See the License for the specific language governing permissions and limitations under the License. */ -package ml.dmlc.xgboost4j.demo; +package ml.dmlc.xgboost4j.java.demo; import java.io.File; import java.io.IOException; import java.util.Arrays; import java.util.HashMap; -import ml.dmlc.xgboost4j.Booster; -import ml.dmlc.xgboost4j.DMatrix; -import ml.dmlc.xgboost4j.XGBoost; -import ml.dmlc.xgboost4j.XGBoostError; -import ml.dmlc.xgboost4j.demo.util.DataLoader; +import ml.dmlc.xgboost4j.java.Booster; +import ml.dmlc.xgboost4j.java.DMatrix; +import ml.dmlc.xgboost4j.java.XGBoost; +import ml.dmlc.xgboost4j.java.XGBoostError; +import ml.dmlc.xgboost4j.java.demo.util.DataLoader; /** * a simple example of java wrapper for xgboost diff --git a/jvm-packages/xgboost4j-demo/src/main/java/ml/dmlc/xgboost4j/demo/BoostFromPrediction.java b/jvm-packages/xgboost4j-demo/src/main/java/ml/dmlc/xgboost4j/java/demo/BoostFromPrediction.java similarity index 90% rename from jvm-packages/xgboost4j-demo/src/main/java/ml/dmlc/xgboost4j/demo/BoostFromPrediction.java rename to jvm-packages/xgboost4j-demo/src/main/java/ml/dmlc/xgboost4j/java/demo/BoostFromPrediction.java index 335efc2d7..5076892cb 100644 --- a/jvm-packages/xgboost4j-demo/src/main/java/ml/dmlc/xgboost4j/demo/BoostFromPrediction.java +++ b/jvm-packages/xgboost4j-demo/src/main/java/ml/dmlc/xgboost4j/java/demo/BoostFromPrediction.java @@ -13,14 +13,14 @@ See the License for the specific language governing permissions and limitations under the License. */ -package ml.dmlc.xgboost4j.demo; +package ml.dmlc.xgboost4j.java.demo; import java.util.HashMap; -import ml.dmlc.xgboost4j.Booster; -import ml.dmlc.xgboost4j.DMatrix; -import ml.dmlc.xgboost4j.XGBoost; -import ml.dmlc.xgboost4j.XGBoostError; +import ml.dmlc.xgboost4j.java.Booster; +import ml.dmlc.xgboost4j.java.DMatrix; +import ml.dmlc.xgboost4j.java.XGBoost; +import ml.dmlc.xgboost4j.java.XGBoostError; /** * example for start from a initial base prediction diff --git a/jvm-packages/xgboost4j-demo/src/main/java/ml/dmlc/xgboost4j/demo/CrossValidation.java b/jvm-packages/xgboost4j-demo/src/main/java/ml/dmlc/xgboost4j/java/demo/CrossValidation.java similarity index 83% rename from jvm-packages/xgboost4j-demo/src/main/java/ml/dmlc/xgboost4j/demo/CrossValidation.java rename to jvm-packages/xgboost4j-demo/src/main/java/ml/dmlc/xgboost4j/java/demo/CrossValidation.java index 115b1dc5b..8f467c8d3 100644 --- a/jvm-packages/xgboost4j-demo/src/main/java/ml/dmlc/xgboost4j/demo/CrossValidation.java +++ b/jvm-packages/xgboost4j-demo/src/main/java/ml/dmlc/xgboost4j/java/demo/CrossValidation.java @@ -13,14 +13,14 @@ See the License for the specific language governing permissions and limitations under the License. */ -package ml.dmlc.xgboost4j.demo; +package ml.dmlc.xgboost4j.java.demo; import java.io.IOException; import java.util.HashMap; -import ml.dmlc.xgboost4j.DMatrix; -import ml.dmlc.xgboost4j.XGBoost; -import ml.dmlc.xgboost4j.XGBoostError; +import ml.dmlc.xgboost4j.java.DMatrix; +import ml.dmlc.xgboost4j.java.XGBoost; +import ml.dmlc.xgboost4j.java.XGBoostError; /** * an example of cross validation @@ -49,6 +49,7 @@ public class CrossValidation { //set additional eval_metrics String[] metrics = null; - String[] evalHist = XGBoost.crossValiation(params, trainMat, round, nfold, metrics, null, null); + String[] evalHist = XGBoost.crossValidation(params, trainMat, round, nfold, metrics, null, + null); } } diff --git a/jvm-packages/xgboost4j-demo/src/main/java/ml/dmlc/xgboost4j/demo/CustomObjective.java b/jvm-packages/xgboost4j-demo/src/main/java/ml/dmlc/xgboost4j/java/demo/CustomObjective.java similarity index 98% rename from jvm-packages/xgboost4j-demo/src/main/java/ml/dmlc/xgboost4j/demo/CustomObjective.java rename to jvm-packages/xgboost4j-demo/src/main/java/ml/dmlc/xgboost4j/java/demo/CustomObjective.java index 1b7dd056b..fecc5f687 100644 --- a/jvm-packages/xgboost4j-demo/src/main/java/ml/dmlc/xgboost4j/demo/CustomObjective.java +++ b/jvm-packages/xgboost4j-demo/src/main/java/ml/dmlc/xgboost4j/java/demo/CustomObjective.java @@ -13,7 +13,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package ml.dmlc.xgboost4j.demo; +package ml.dmlc.xgboost4j.java.demo; import java.util.ArrayList; import java.util.HashMap; @@ -22,7 +22,7 @@ import java.util.List; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import ml.dmlc.xgboost4j.*; +import ml.dmlc.xgboost4j.java.*; /** * an example user define objective and eval diff --git a/jvm-packages/xgboost4j-demo/src/main/java/ml/dmlc/xgboost4j/demo/DistTrain.java b/jvm-packages/xgboost4j-demo/src/main/java/ml/dmlc/xgboost4j/java/demo/DistTrain.java similarity index 97% rename from jvm-packages/xgboost4j-demo/src/main/java/ml/dmlc/xgboost4j/demo/DistTrain.java rename to jvm-packages/xgboost4j-demo/src/main/java/ml/dmlc/xgboost4j/java/demo/DistTrain.java index fdbbc6599..89c9bcdb0 100644 --- a/jvm-packages/xgboost4j-demo/src/main/java/ml/dmlc/xgboost4j/demo/DistTrain.java +++ b/jvm-packages/xgboost4j-demo/src/main/java/ml/dmlc/xgboost4j/java/demo/DistTrain.java @@ -1,4 +1,4 @@ -package ml.dmlc.xgboost4j.demo; +package ml.dmlc.xgboost4j.java.demo; import java.io.IOException; import java.util.HashMap; @@ -7,8 +7,7 @@ import java.util.Map; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import ml.dmlc.xgboost4j.*; - +import ml.dmlc.xgboost4j.java.*; /** * Distributed training example, used to quick test distributed training. diff --git a/jvm-packages/xgboost4j-demo/src/main/java/ml/dmlc/xgboost4j/demo/ExternalMemory.java b/jvm-packages/xgboost4j-demo/src/main/java/ml/dmlc/xgboost4j/java/demo/ExternalMemory.java similarity index 90% rename from jvm-packages/xgboost4j-demo/src/main/java/ml/dmlc/xgboost4j/demo/ExternalMemory.java rename to jvm-packages/xgboost4j-demo/src/main/java/ml/dmlc/xgboost4j/java/demo/ExternalMemory.java index 095382953..e73eb058d 100644 --- a/jvm-packages/xgboost4j-demo/src/main/java/ml/dmlc/xgboost4j/demo/ExternalMemory.java +++ b/jvm-packages/xgboost4j-demo/src/main/java/ml/dmlc/xgboost4j/java/demo/ExternalMemory.java @@ -13,14 +13,14 @@ See the License for the specific language governing permissions and limitations under the License. */ -package ml.dmlc.xgboost4j.demo; +package ml.dmlc.xgboost4j.java.demo; import java.util.HashMap; -import ml.dmlc.xgboost4j.Booster; -import ml.dmlc.xgboost4j.DMatrix; -import ml.dmlc.xgboost4j.XGBoost; -import ml.dmlc.xgboost4j.XGBoostError; +import ml.dmlc.xgboost4j.java.Booster; +import ml.dmlc.xgboost4j.java.DMatrix; +import ml.dmlc.xgboost4j.java.XGBoost; +import ml.dmlc.xgboost4j.java.XGBoostError; /** * simple example for using external memory version diff --git a/jvm-packages/xgboost4j-demo/src/main/java/ml/dmlc/xgboost4j/demo/GeneralizedLinearModel.java b/jvm-packages/xgboost4j-demo/src/main/java/ml/dmlc/xgboost4j/java/demo/GeneralizedLinearModel.java similarity index 90% rename from jvm-packages/xgboost4j-demo/src/main/java/ml/dmlc/xgboost4j/demo/GeneralizedLinearModel.java rename to jvm-packages/xgboost4j-demo/src/main/java/ml/dmlc/xgboost4j/java/demo/GeneralizedLinearModel.java index e2e36e351..4ec2fc1a2 100644 --- a/jvm-packages/xgboost4j-demo/src/main/java/ml/dmlc/xgboost4j/demo/GeneralizedLinearModel.java +++ b/jvm-packages/xgboost4j-demo/src/main/java/ml/dmlc/xgboost4j/java/demo/GeneralizedLinearModel.java @@ -13,15 +13,15 @@ See the License for the specific language governing permissions and limitations under the License. */ -package ml.dmlc.xgboost4j.demo; +package ml.dmlc.xgboost4j.java.demo; import java.util.HashMap; -import ml.dmlc.xgboost4j.Booster; -import ml.dmlc.xgboost4j.DMatrix; -import ml.dmlc.xgboost4j.XGBoost; -import ml.dmlc.xgboost4j.XGBoostError; -import ml.dmlc.xgboost4j.demo.util.CustomEval; +import ml.dmlc.xgboost4j.java.Booster; +import ml.dmlc.xgboost4j.java.DMatrix; +import ml.dmlc.xgboost4j.java.XGBoost; +import ml.dmlc.xgboost4j.java.XGBoostError; +import ml.dmlc.xgboost4j.java.demo.util.CustomEval; /** * this is an example of fit generalized linear model in xgboost diff --git a/jvm-packages/xgboost4j-demo/src/main/java/ml/dmlc/xgboost4j/demo/PredictFirstNtree.java b/jvm-packages/xgboost4j-demo/src/main/java/ml/dmlc/xgboost4j/java/demo/PredictFirstNtree.java similarity index 88% rename from jvm-packages/xgboost4j-demo/src/main/java/ml/dmlc/xgboost4j/demo/PredictFirstNtree.java rename to jvm-packages/xgboost4j-demo/src/main/java/ml/dmlc/xgboost4j/java/demo/PredictFirstNtree.java index defa437d3..67a965d64 100644 --- a/jvm-packages/xgboost4j-demo/src/main/java/ml/dmlc/xgboost4j/demo/PredictFirstNtree.java +++ b/jvm-packages/xgboost4j-demo/src/main/java/ml/dmlc/xgboost4j/java/demo/PredictFirstNtree.java @@ -13,15 +13,15 @@ See the License for the specific language governing permissions and limitations under the License. */ -package ml.dmlc.xgboost4j.demo; +package ml.dmlc.xgboost4j.java.demo; import java.util.HashMap; -import ml.dmlc.xgboost4j.Booster; -import ml.dmlc.xgboost4j.DMatrix; -import ml.dmlc.xgboost4j.XGBoost; -import ml.dmlc.xgboost4j.XGBoostError; -import ml.dmlc.xgboost4j.demo.util.CustomEval; +import ml.dmlc.xgboost4j.java.Booster; +import ml.dmlc.xgboost4j.java.DMatrix; +import ml.dmlc.xgboost4j.java.XGBoost; +import ml.dmlc.xgboost4j.java.XGBoostError; +import ml.dmlc.xgboost4j.java.demo.util.CustomEval; /** * predict first ntree diff --git a/jvm-packages/xgboost4j-demo/src/main/java/ml/dmlc/xgboost4j/demo/PredictLeafIndices.java b/jvm-packages/xgboost4j-demo/src/main/java/ml/dmlc/xgboost4j/java/demo/PredictLeafIndices.java similarity index 90% rename from jvm-packages/xgboost4j-demo/src/main/java/ml/dmlc/xgboost4j/demo/PredictLeafIndices.java rename to jvm-packages/xgboost4j-demo/src/main/java/ml/dmlc/xgboost4j/java/demo/PredictLeafIndices.java index d18987292..420f38111 100644 --- a/jvm-packages/xgboost4j-demo/src/main/java/ml/dmlc/xgboost4j/demo/PredictLeafIndices.java +++ b/jvm-packages/xgboost4j-demo/src/main/java/ml/dmlc/xgboost4j/java/demo/PredictLeafIndices.java @@ -13,15 +13,15 @@ See the License for the specific language governing permissions and limitations under the License. */ -package ml.dmlc.xgboost4j.demo; +package ml.dmlc.xgboost4j.java.demo; import java.util.Arrays; import java.util.HashMap; -import ml.dmlc.xgboost4j.Booster; -import ml.dmlc.xgboost4j.DMatrix; -import ml.dmlc.xgboost4j.XGBoost; -import ml.dmlc.xgboost4j.XGBoostError; +import ml.dmlc.xgboost4j.java.Booster; +import ml.dmlc.xgboost4j.java.DMatrix; +import ml.dmlc.xgboost4j.java.XGBoost; +import ml.dmlc.xgboost4j.java.XGBoostError; /** * predict leaf indices diff --git a/jvm-packages/xgboost4j-demo/src/main/java/ml/dmlc/xgboost4j/demo/util/CustomEval.java b/jvm-packages/xgboost4j-demo/src/main/java/ml/dmlc/xgboost4j/java/demo/util/CustomEval.java similarity index 89% rename from jvm-packages/xgboost4j-demo/src/main/java/ml/dmlc/xgboost4j/demo/util/CustomEval.java rename to jvm-packages/xgboost4j-demo/src/main/java/ml/dmlc/xgboost4j/java/demo/util/CustomEval.java index 93650abd5..b698bf410 100644 --- a/jvm-packages/xgboost4j-demo/src/main/java/ml/dmlc/xgboost4j/demo/util/CustomEval.java +++ b/jvm-packages/xgboost4j-demo/src/main/java/ml/dmlc/xgboost4j/java/demo/util/CustomEval.java @@ -13,14 +13,14 @@ See the License for the specific language governing permissions and limitations under the License. */ -package ml.dmlc.xgboost4j.demo.util; +package ml.dmlc.xgboost4j.java.demo.util; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import ml.dmlc.xgboost4j.DMatrix; -import ml.dmlc.xgboost4j.IEvaluation; -import ml.dmlc.xgboost4j.XGBoostError; +import ml.dmlc.xgboost4j.java.DMatrix; +import ml.dmlc.xgboost4j.java.IEvaluation; +import ml.dmlc.xgboost4j.java.XGBoostError; /** * a util evaluation class for examples diff --git a/jvm-packages/xgboost4j-demo/src/main/java/ml/dmlc/xgboost4j/demo/util/DataLoader.java b/jvm-packages/xgboost4j-demo/src/main/java/ml/dmlc/xgboost4j/java/demo/util/DataLoader.java similarity index 98% rename from jvm-packages/xgboost4j-demo/src/main/java/ml/dmlc/xgboost4j/demo/util/DataLoader.java rename to jvm-packages/xgboost4j-demo/src/main/java/ml/dmlc/xgboost4j/java/demo/util/DataLoader.java index 818d61451..5aa456fad 100644 --- a/jvm-packages/xgboost4j-demo/src/main/java/ml/dmlc/xgboost4j/demo/util/DataLoader.java +++ b/jvm-packages/xgboost4j-demo/src/main/java/ml/dmlc/xgboost4j/java/demo/util/DataLoader.java @@ -13,7 +13,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package ml.dmlc.xgboost4j.demo.util; +package ml.dmlc.xgboost4j.java.demo.util; import java.io.*; import java.util.ArrayList; diff --git a/jvm-packages/xgboost4j-flink/pom.xml b/jvm-packages/xgboost4j-flink/pom.xml new file mode 100644 index 000000000..9c7b55427 --- /dev/null +++ b/jvm-packages/xgboost4j-flink/pom.xml @@ -0,0 +1,47 @@ + + + 4.0.0 + + org.dmlc + xgboostjvm + 0.1 + + xgboost4j-flink + 0.1 + jar + + + org.dmlc + xgboost4j + 0.1 + + + org.apache.commons + commons-lang3 + 3.4 + + + org.apache.flink + flink-java_2.11 + 0.10.2 + + + org.apache.flink + flink-scala_2.11 + 0.10.2 + + + org.apache.flink + flink-clients_2.11 + 0.10.2 + + + org.apache.flink + flink-ml_2.11 + 0.10.2 + + + + \ No newline at end of file diff --git a/jvm-packages/xgboost4j-flink/src/main/scala/ml/dmlc/xgboost4j/flink/Test.scala b/jvm-packages/xgboost4j-flink/src/main/scala/ml/dmlc/xgboost4j/flink/Test.scala new file mode 100644 index 000000000..f4934fc2f --- /dev/null +++ b/jvm-packages/xgboost4j-flink/src/main/scala/ml/dmlc/xgboost4j/flink/Test.scala @@ -0,0 +1,71 @@ +/* + Copyright (c) 2014 by Contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + */ + +package ml.dmlc.xgboost4j.flink + +import ml.dmlc.xgboost4j.java.{Rabit,RabitTracker} + +import ml.dmlc.xgboost4j.scala.Booster +import ml.dmlc.xgboost4j.scala.DMatrix +import ml.dmlc.xgboost4j.scala.XGBoost +import org.apache.commons.logging.Log +import org.apache.commons.logging.LogFactory +import org.apache.flink.api.common.functions.RichMapPartitionFunction +import org.apache.flink.api.scala._ +import org.apache.flink.api.scala.DataSet +import org.apache.flink.api.scala.ExecutionEnvironment +import org.apache.flink.ml.common.LabeledVector +import org.apache.flink.ml.MLUtils +import org.apache.flink.util.Collector + +class ScalaMapFunction(workerEnvs: java.util.Map[String, String]) + extends RichMapPartitionFunction[LabeledVector, Booster] { + val log = LogFactory.getLog(this.getClass) + def mapPartition(it : java.lang.Iterable[LabeledVector], collector: Collector[Booster]): Unit = { + workerEnvs.put("DMLC_TASK_ID", String.valueOf(this.getRuntimeContext.getIndexOfThisSubtask)) + log.info("start with env" + workerEnvs.toString) + Rabit.init(workerEnvs) + + val trainMat = new DMatrix("/home/tqchen/github/xgboost/demo/data/agaricus.txt.train") + + val paramMap = List("eta" -> "1", "max_depth" -> "2", "silent" -> "1", + "objective" -> "binary:logistic").toMap + val watches = List("train" -> trainMat).toMap + val round = 2 + val booster = XGBoost.train(paramMap, trainMat, round, watches, null, null) + Rabit.shutdown() + collector.collect(booster) + } +} + + + +object Test { + val log = LogFactory.getLog(this.getClass) + def main(args: Array[String]) { + val env: ExecutionEnvironment = ExecutionEnvironment.getExecutionEnvironment + val data = MLUtils.readLibSVM(env, "/home/tqchen/github/xgboost/demo/data/agaricus.txt.train") + val tracker = new RabitTracker(data.getExecutionEnvironment.getParallelism) + log.info("start with parallelism" + data.getExecutionEnvironment.getParallelism) + assert(data.getExecutionEnvironment.getParallelism >= 1) + tracker.start() + + val res = data.mapPartition(new ScalaMapFunction(tracker.getWorkerEnvs)).reduce((x, y) => x) + val model = res.collect() + log.info(model) + } +} + diff --git a/jvm-packages/xgboost4j-spark/pom.xml b/jvm-packages/xgboost4j-spark/pom.xml new file mode 100644 index 000000000..cb7290654 --- /dev/null +++ b/jvm-packages/xgboost4j-spark/pom.xml @@ -0,0 +1,35 @@ + + + 4.0.0 + + ml.dmlc + xgboostjvm + 0.1 + + xgboost4jspark + + + + org.apache.maven.plugins + maven-assembly-plugin + + false + + + + + + + ml.dmlc + xgboost4j + 0.1 + + + org.apache.spark + spark-mllib_2.10 + 1.6.0 + + + \ No newline at end of file diff --git a/jvm-packages/xgboost4j-spark/src/main/scala/ml/dmlc/xgboost4j/scala/spark/DataUtils.scala b/jvm-packages/xgboost4j-spark/src/main/scala/ml/dmlc/xgboost4j/scala/spark/DataUtils.scala new file mode 100644 index 000000000..4ad951567 --- /dev/null +++ b/jvm-packages/xgboost4j-spark/src/main/scala/ml/dmlc/xgboost4j/scala/spark/DataUtils.scala @@ -0,0 +1,74 @@ +/* + Copyright (c) 2014 by Contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + */ + +package ml.dmlc.xgboost4j.scala.spark + +import java.util.{Iterator => JIterator} + +import scala.collection.mutable.ListBuffer +import scala.collection.JavaConverters._ + +import ml.dmlc.xgboost4j.java.DataBatch +import org.apache.spark.mllib.linalg.{SparseVector, DenseVector, Vector} +import org.apache.spark.mllib.regression.LabeledPoint + +private[spark] object DataUtils extends Serializable { + + private def fetchUpdateFromSparseVector(sparseFeature: SparseVector): (List[Int], List[Float]) = { + (sparseFeature.indices.toList, sparseFeature.values.map(_.toFloat).toList) + } + + private def fetchUpdateFromVector(feature: Vector) = feature match { + case denseFeature: DenseVector => + fetchUpdateFromSparseVector(denseFeature.toSparse) + case sparseFeature: SparseVector => + fetchUpdateFromSparseVector(sparseFeature) + } + + def fromLabeledPointsToSparseMatrix(points: Iterator[LabeledPoint]): JIterator[DataBatch] = { + // TODO: support weight + var samplePos = 0 + // TODO: change hard value + val loadingBatchSize = 100 + val rowOffset = new ListBuffer[Long] + val label = new ListBuffer[Float] + val featureIndices = new ListBuffer[Int] + val featureValues = new ListBuffer[Float] + val dataBatches = new ListBuffer[DataBatch] + for (point <- points) { + val (nonZeroIndices, nonZeroValues) = fetchUpdateFromVector(point.features) + rowOffset(samplePos) = rowOffset.size + label(samplePos) = point.label.toFloat + for (i <- nonZeroIndices.indices) { + featureIndices += nonZeroIndices(i) + featureValues += nonZeroValues(i) + } + samplePos += 1 + if (samplePos % loadingBatchSize == 0) { + // create a data batch + dataBatches += new DataBatch( + rowOffset.toArray.clone(), + null, label.toArray.clone(), featureIndices.toArray.clone(), + featureValues.toArray.clone()) + rowOffset.clear() + label.clear() + featureIndices.clear() + featureValues.clear() + } + } + dataBatches.iterator.asJava + } +} diff --git a/jvm-packages/xgboost4j-spark/src/main/scala/ml/dmlc/xgboost4j/scala/spark/XGBoost.scala b/jvm-packages/xgboost4j-spark/src/main/scala/ml/dmlc/xgboost4j/scala/spark/XGBoost.scala new file mode 100644 index 000000000..8151e6ccc --- /dev/null +++ b/jvm-packages/xgboost4j-spark/src/main/scala/ml/dmlc/xgboost4j/scala/spark/XGBoost.scala @@ -0,0 +1,57 @@ +/* + Copyright (c) 2014 by Contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + */ + +package ml.dmlc.xgboost4j.scala.spark + +import scala.collection.immutable.HashMap +import scala.collection.JavaConverters._ + +import com.typesafe.config.Config +import ml.dmlc.xgboost4j.java.{DMatrix => JDMatrix} +import ml.dmlc.xgboost4j.scala.{XGBoost => SXGBoost, _} +import org.apache.spark.SparkContext +import org.apache.spark.mllib.regression.LabeledPoint +import org.apache.spark.rdd.RDD + +object XGBoost { + + private var _sc: Option[SparkContext] = None + + implicit def convertBoosterToXGBoostModel(booster: Booster): XGBoostModel = { + new XGBoostModel(booster) + } + + def train(config: Config, trainingData: RDD[LabeledPoint], obj: ObjectiveTrait = null, + eval: EvalTrait = null): XGBoostModel = { + val sc = trainingData.sparkContext + val dataUtilsBroadcast = sc.broadcast(DataUtils) + val filePath = config.getString("inputPath") // configuration entry name to be fixed + val numWorkers = config.getInt("numWorkers") + val round = config.getInt("round") + // TODO: build configuration map from config + val xgBoostConfigMap = new HashMap[String, AnyRef]() + val boosters = trainingData.repartition(numWorkers).mapPartitions { + trainingSamples => + val dataBatches = dataUtilsBroadcast.value.fromLabeledPointsToSparseMatrix(trainingSamples) + val dMatrix = new DMatrix(new JDMatrix(dataBatches, null)) + Iterator(SXGBoost.train(xgBoostConfigMap, dMatrix, round, watches = null, obj, eval)) + }.cache() + // force the job + sc.runJob(boosters, (boosters: Iterator[Booster]) => boosters) + // TODO: how to choose best model + boosters.first() + } +} diff --git a/jvm-packages/xgboost4j-spark/src/main/scala/ml/dmlc/xgboost4j/scala/spark/XGBoostModel.scala b/jvm-packages/xgboost4j-spark/src/main/scala/ml/dmlc/xgboost4j/scala/spark/XGBoostModel.scala new file mode 100644 index 000000000..47efb053f --- /dev/null +++ b/jvm-packages/xgboost4j-spark/src/main/scala/ml/dmlc/xgboost4j/scala/spark/XGBoostModel.scala @@ -0,0 +1,37 @@ +/* + Copyright (c) 2014 by Contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + */ + +package ml.dmlc.xgboost4j.scala.spark + +import scala.collection.JavaConverters._ + +import ml.dmlc.xgboost4j.java.{DMatrix => JDMatrix} +import ml.dmlc.xgboost4j.scala.{DMatrix, Booster} +import org.apache.spark.mllib.regression.LabeledPoint +import org.apache.spark.rdd.RDD + +class XGBoostModel(booster: Booster) extends Serializable { + + def predict(testSet: RDD[LabeledPoint]): RDD[Array[Array[Float]]] = { + val broadcastBooster = testSet.sparkContext.broadcast(booster) + val dataUtils = testSet.sparkContext.broadcast(DataUtils) + testSet.mapPartitions { testSamples => + val dataBatches = dataUtils.value.fromLabeledPointsToSparseMatrix(testSamples) + val dMatrix = new DMatrix(new JDMatrix(dataBatches, null)) + Iterator(broadcastBooster.value.predict(dMatrix)) + } + } +} diff --git a/jvm-packages/xgboost4j/pom.xml b/jvm-packages/xgboost4j/pom.xml index fc6b45ccd..4ab4414a1 100644 --- a/jvm-packages/xgboost4j/pom.xml +++ b/jvm-packages/xgboost4j/pom.xml @@ -4,7 +4,7 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - org.dmlc + ml.dmlc xgboostjvm 0.1 @@ -22,6 +22,13 @@ true + + org.apache.maven.plugins + maven-assembly-plugin + + false + + org.scalatest scalatest-maven-plugin diff --git a/jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/Booster.java b/jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/java/Booster.java similarity index 99% rename from jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/Booster.java rename to jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/java/Booster.java index 0707cff2d..e6e427900 100644 --- a/jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/Booster.java +++ b/jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/java/Booster.java @@ -1,4 +1,4 @@ -package ml.dmlc.xgboost4j; +package ml.dmlc.xgboost4j.java; import java.io.IOException; import java.io.Serializable; diff --git a/jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/DMatrix.java b/jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/java/DMatrix.java similarity index 87% rename from jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/DMatrix.java rename to jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/java/DMatrix.java index e2b3ecc47..a5a9b4972 100644 --- a/jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/DMatrix.java +++ b/jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/java/DMatrix.java @@ -13,7 +13,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package ml.dmlc.xgboost4j; +package ml.dmlc.xgboost4j.java; import java.io.IOException; import java.util.Iterator; @@ -28,7 +28,7 @@ import org.apache.commons.logging.LogFactory; */ public class DMatrix { private static final Log logger = LogFactory.getLog(DMatrix.class); - private long handle = 0; + protected long handle = 0; //load native library static { @@ -65,7 +65,7 @@ public class DMatrix { logger.info(e.toString()); } long[] out = new long[1]; - JNIErrorHandle.checkCall(XgboostJNI.XGDMatrixCreateFromDataIter(iter, cache_info, out)); + JNIErrorHandle.checkCall(XGBoostJNI.XGDMatrixCreateFromDataIter(iter, cache_info, out)); handle = out[0]; } @@ -80,7 +80,7 @@ public class DMatrix { throw new NullPointerException("dataPath: null"); } long[] out = new long[1]; - JNIErrorHandle.checkCall(XgboostJNI.XGDMatrixCreateFromFile(dataPath, 1, out)); + JNIErrorHandle.checkCall(XGBoostJNI.XGDMatrixCreateFromFile(dataPath, 1, out)); handle = out[0]; } @@ -95,9 +95,9 @@ public class DMatrix { public DMatrix(long[] headers, int[] indices, float[] data, SparseType st) throws XGBoostError { long[] out = new long[1]; if (st == SparseType.CSR) { - JNIErrorHandle.checkCall(XgboostJNI.XGDMatrixCreateFromCSR(headers, indices, data, out)); + JNIErrorHandle.checkCall(XGBoostJNI.XGDMatrixCreateFromCSR(headers, indices, data, out)); } else if (st == SparseType.CSC) { - JNIErrorHandle.checkCall(XgboostJNI.XGDMatrixCreateFromCSC(headers, indices, data, out)); + JNIErrorHandle.checkCall(XGBoostJNI.XGDMatrixCreateFromCSC(headers, indices, data, out)); } else { throw new UnknownError("unknow sparsetype"); } @@ -114,7 +114,7 @@ public class DMatrix { */ public DMatrix(float[] data, int nrow, int ncol) throws XGBoostError { long[] out = new long[1]; - JNIErrorHandle.checkCall(XgboostJNI.XGDMatrixCreateFromMat(data, nrow, ncol, 0.0f, out)); + JNIErrorHandle.checkCall(XGBoostJNI.XGDMatrixCreateFromMat(data, nrow, ncol, 0.0f, out)); handle = out[0]; } @@ -133,7 +133,7 @@ public class DMatrix { * @throws XGBoostError native error */ public void setLabel(float[] labels) throws XGBoostError { - JNIErrorHandle.checkCall(XgboostJNI.XGDMatrixSetFloatInfo(handle, "label", labels)); + JNIErrorHandle.checkCall(XGBoostJNI.XGDMatrixSetFloatInfo(handle, "label", labels)); } /** @@ -143,7 +143,7 @@ public class DMatrix { * @throws XGBoostError native error */ public void setWeight(float[] weights) throws XGBoostError { - JNIErrorHandle.checkCall(XgboostJNI.XGDMatrixSetFloatInfo(handle, "weight", weights)); + JNIErrorHandle.checkCall(XGBoostJNI.XGDMatrixSetFloatInfo(handle, "weight", weights)); } /** @@ -154,7 +154,7 @@ public class DMatrix { * @throws XGBoostError native error */ public void setBaseMargin(float[] baseMargin) throws XGBoostError { - JNIErrorHandle.checkCall(XgboostJNI.XGDMatrixSetFloatInfo(handle, "base_margin", baseMargin)); + JNIErrorHandle.checkCall(XGBoostJNI.XGDMatrixSetFloatInfo(handle, "base_margin", baseMargin)); } /** @@ -176,18 +176,18 @@ public class DMatrix { * @throws XGBoostError native error */ public void setGroup(int[] group) throws XGBoostError { - JNIErrorHandle.checkCall(XgboostJNI.XGDMatrixSetGroup(handle, group)); + JNIErrorHandle.checkCall(XGBoostJNI.XGDMatrixSetGroup(handle, group)); } private float[] getFloatInfo(String field) throws XGBoostError { float[][] infos = new float[1][]; - JNIErrorHandle.checkCall(XgboostJNI.XGDMatrixGetFloatInfo(handle, field, infos)); + JNIErrorHandle.checkCall(XGBoostJNI.XGDMatrixGetFloatInfo(handle, field, infos)); return infos[0]; } private int[] getIntInfo(String field) throws XGBoostError { int[][] infos = new int[1][]; - JNIErrorHandle.checkCall(XgboostJNI.XGDMatrixGetUIntInfo(handle, field, infos)); + JNIErrorHandle.checkCall(XGBoostJNI.XGDMatrixGetUIntInfo(handle, field, infos)); return infos[0]; } @@ -230,7 +230,7 @@ public class DMatrix { */ public DMatrix slice(int[] rowIndex) throws XGBoostError { long[] out = new long[1]; - JNIErrorHandle.checkCall(XgboostJNI.XGDMatrixSliceDMatrix(handle, rowIndex, out)); + JNIErrorHandle.checkCall(XGBoostJNI.XGDMatrixSliceDMatrix(handle, rowIndex, out)); long sHandle = out[0]; DMatrix sMatrix = new DMatrix(sHandle); return sMatrix; @@ -244,7 +244,7 @@ public class DMatrix { */ public long rowNum() throws XGBoostError { long[] rowNum = new long[1]; - JNIErrorHandle.checkCall(XgboostJNI.XGDMatrixNumRow(handle, rowNum)); + JNIErrorHandle.checkCall(XGBoostJNI.XGDMatrixNumRow(handle, rowNum)); return rowNum[0]; } @@ -252,7 +252,7 @@ public class DMatrix { * save DMatrix to filePath */ public void saveBinary(String filePath) { - XgboostJNI.XGDMatrixSaveBinary(handle, filePath, 1); + XGBoostJNI.XGDMatrixSaveBinary(handle, filePath, 1); } /** @@ -285,7 +285,7 @@ public class DMatrix { public synchronized void dispose() { if (handle != 0) { - XgboostJNI.XGDMatrixFree(handle); + XGBoostJNI.XGDMatrixFree(handle); handle = 0; } } diff --git a/jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/DataBatch.java b/jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/java/DataBatch.java similarity index 76% rename from jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/DataBatch.java rename to jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/java/DataBatch.java index 2e48b02f5..b4bbbe690 100644 --- a/jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/DataBatch.java +++ b/jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/java/DataBatch.java @@ -1,11 +1,9 @@ -package ml.dmlc.xgboost4j; +package ml.dmlc.xgboost4j.java; /** * A mini-batch of data that can be converted to DMatrix. * The data is in sparse matrix CSR format. * - * Usually this object is not needed. - * * This class is used to support advanced creation of DMatrix from Iterator of DataBatch, */ public class DataBatch { @@ -19,6 +17,19 @@ public class DataBatch { int[] featureIndex = null; /** value of each non-missing entry in the sparse matrix */ float[] featureValue = null; + + public DataBatch() {} + + public DataBatch(long[] rowOffset, float[] weight, float[] label, int[] featureIndex, + float[] featureValue) { + this.rowOffset = rowOffset; + this.weight = weight; + this.label = label; + this.featureIndex = featureIndex; + this.featureValue = featureValue; + } + + /** * Get number of rows in the data batch. * @return Number of rows in the data batch. diff --git a/jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/IEvaluation.java b/jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/java/IEvaluation.java similarity index 96% rename from jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/IEvaluation.java rename to jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/java/IEvaluation.java index 079cd057e..9c28fb0fd 100644 --- a/jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/IEvaluation.java +++ b/jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/java/IEvaluation.java @@ -13,7 +13,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package ml.dmlc.xgboost4j; +package ml.dmlc.xgboost4j.java; /** * interface for customized evaluation diff --git a/jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/IObjective.java b/jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/java/IObjective.java similarity index 90% rename from jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/IObjective.java rename to jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/java/IObjective.java index 97ef9aed4..3ee1d5008 100644 --- a/jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/IObjective.java +++ b/jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/java/IObjective.java @@ -13,8 +13,9 @@ See the License for the specific language governing permissions and limitations under the License. */ -package ml.dmlc.xgboost4j; +package ml.dmlc.xgboost4j.java; +import java.io.Serializable; import java.util.List; /** @@ -22,7 +23,7 @@ import java.util.List; * * @author hzx */ -public interface IObjective { +public interface IObjective extends Serializable { /** * user define objective function, return gradient and second order gradient * diff --git a/jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/JNIErrorHandle.java b/jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/java/JNIErrorHandle.java similarity index 93% rename from jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/JNIErrorHandle.java rename to jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/java/JNIErrorHandle.java index d3c63d0ee..bb64ee56f 100644 --- a/jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/JNIErrorHandle.java +++ b/jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/java/JNIErrorHandle.java @@ -13,7 +13,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package ml.dmlc.xgboost4j; +package ml.dmlc.xgboost4j.java; import java.io.IOException; @@ -45,7 +45,7 @@ class JNIErrorHandle { */ static void checkCall(int ret) throws XGBoostError { if (ret != 0) { - throw new XGBoostError(XgboostJNI.XGBGetLastError()); + throw new XGBoostError(XGBoostJNI.XGBGetLastError()); } } diff --git a/jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/JavaBoosterImpl.java b/jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/java/JavaBoosterImpl.java similarity index 93% rename from jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/JavaBoosterImpl.java rename to jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/java/JavaBoosterImpl.java index ae265a36d..37860dc6f 100644 --- a/jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/JavaBoosterImpl.java +++ b/jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/java/JavaBoosterImpl.java @@ -13,7 +13,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package ml.dmlc.xgboost4j; +package ml.dmlc.xgboost4j.java; import java.io.*; import java.util.HashMap; @@ -81,7 +81,7 @@ class JavaBoosterImpl implements Booster { handles = dmatrixsToHandles(dMatrixs); } long[] out = new long[1]; - JNIErrorHandle.checkCall(XgboostJNI.XGBoosterCreate(handles, out)); + JNIErrorHandle.checkCall(XGBoostJNI.XGBoosterCreate(handles, out)); handle = out[0]; } @@ -94,7 +94,7 @@ class JavaBoosterImpl implements Booster { * @throws XGBoostError native error */ public final void setParam(String key, String value) throws XGBoostError { - JNIErrorHandle.checkCall(XgboostJNI.XGBoosterSetParam(handle, key, value)); + JNIErrorHandle.checkCall(XGBoostJNI.XGBoosterSetParam(handle, key, value)); } /** @@ -120,7 +120,7 @@ class JavaBoosterImpl implements Booster { * @throws XGBoostError native error */ public void update(DMatrix dtrain, int iter) throws XGBoostError { - JNIErrorHandle.checkCall(XgboostJNI.XGBoosterUpdateOneIter(handle, iter, dtrain.getHandle())); + JNIErrorHandle.checkCall(XGBoostJNI.XGBoosterUpdateOneIter(handle, iter, dtrain.getHandle())); } /** @@ -149,7 +149,7 @@ class JavaBoosterImpl implements Booster { throw new AssertionError(String.format("grad/hess length mismatch %s / %s", grad.length, hess.length)); } - JNIErrorHandle.checkCall(XgboostJNI.XGBoosterBoostOneIter(handle, dtrain.getHandle(), grad, + JNIErrorHandle.checkCall(XGBoostJNI.XGBoosterBoostOneIter(handle, dtrain.getHandle(), grad, hess)); } @@ -165,7 +165,7 @@ class JavaBoosterImpl implements Booster { public String evalSet(DMatrix[] evalMatrixs, String[] evalNames, int iter) throws XGBoostError { long[] handles = dmatrixsToHandles(evalMatrixs); String[] evalInfo = new String[1]; - JNIErrorHandle.checkCall(XgboostJNI.XGBoosterEvalOneIter(handle, iter, handles, evalNames, + JNIErrorHandle.checkCall(XGBoostJNI.XGBoosterEvalOneIter(handle, iter, handles, evalNames, evalInfo)); return evalInfo[0]; } @@ -211,7 +211,7 @@ class JavaBoosterImpl implements Booster { optionMask = 2; } float[][] rawPredicts = new float[1][]; - JNIErrorHandle.checkCall(XgboostJNI.XGBoosterPredict(handle, data.getHandle(), optionMask, + JNIErrorHandle.checkCall(XGBoostJNI.XGBoosterPredict(handle, data.getHandle(), optionMask, treeLimit, rawPredicts)); int row = (int) data.rowNum(); int col = rawPredicts[0].length / row; @@ -284,11 +284,11 @@ class JavaBoosterImpl implements Booster { * @param modelPath model path */ public void saveModel(String modelPath) throws XGBoostError{ - JNIErrorHandle.checkCall(XgboostJNI.XGBoosterSaveModel(handle, modelPath)); + JNIErrorHandle.checkCall(XGBoostJNI.XGBoosterSaveModel(handle, modelPath)); } private void loadModel(String modelPath) { - XgboostJNI.XGBoosterLoadModel(handle, modelPath); + XGBoostJNI.XGBoosterLoadModel(handle, modelPath); } /** @@ -304,7 +304,7 @@ class JavaBoosterImpl implements Booster { statsFlag = 1; } String[][] modelInfos = new String[1][]; - JNIErrorHandle.checkCall(XgboostJNI.XGBoosterDumpModel(handle, "", statsFlag, modelInfos)); + JNIErrorHandle.checkCall(XGBoostJNI.XGBoosterDumpModel(handle, "", statsFlag, modelInfos)); return modelInfos[0]; } @@ -322,7 +322,7 @@ class JavaBoosterImpl implements Booster { statsFlag = 1; } String[][] modelInfos = new String[1][]; - JNIErrorHandle.checkCall(XgboostJNI.XGBoosterDumpModel(handle, featureMap, statsFlag, + JNIErrorHandle.checkCall(XGBoostJNI.XGBoosterDumpModel(handle, featureMap, statsFlag, modelInfos)); return modelInfos[0]; } @@ -450,7 +450,7 @@ class JavaBoosterImpl implements Booster { */ public byte[] toByteArray() throws XGBoostError { byte[][] bytes = new byte[1][]; - JNIErrorHandle.checkCall(XgboostJNI.XGBoosterGetModelRaw(this.handle, bytes)); + JNIErrorHandle.checkCall(XGBoostJNI.XGBoosterGetModelRaw(this.handle, bytes)); return bytes[0]; } @@ -463,7 +463,7 @@ class JavaBoosterImpl implements Booster { */ int loadRabitCheckpoint() throws XGBoostError { int[] out = new int[1]; - JNIErrorHandle.checkCall(XgboostJNI.XGBoosterLoadRabitCheckpoint(this.handle, out)); + JNIErrorHandle.checkCall(XGBoostJNI.XGBoosterLoadRabitCheckpoint(this.handle, out)); return out[0]; } @@ -473,7 +473,7 @@ class JavaBoosterImpl implements Booster { * @throws XGBoostError */ void saveRabitCheckpoint() throws XGBoostError { - JNIErrorHandle.checkCall(XgboostJNI.XGBoosterSaveRabitCheckpoint(this.handle)); + JNIErrorHandle.checkCall(XGBoostJNI.XGBoosterSaveRabitCheckpoint(this.handle)); } /** @@ -491,8 +491,7 @@ class JavaBoosterImpl implements Booster { } // making Booster serializable - private void writeObject(java.io.ObjectOutputStream out) - throws IOException { + private void writeObject(java.io.ObjectOutputStream out) throws IOException { try { out.writeObject(this.toByteArray()); } catch (XGBoostError ex) { @@ -505,7 +504,7 @@ class JavaBoosterImpl implements Booster { try { this.init(null); byte[] bytes = (byte[])in.readObject(); - JNIErrorHandle.checkCall(XgboostJNI.XGBoosterLoadModelFromBuffer(this.handle, bytes)); + JNIErrorHandle.checkCall(XGBoostJNI.XGBoosterLoadModelFromBuffer(this.handle, bytes)); } catch (XGBoostError ex) { throw new IOException(ex.toString()); } @@ -519,7 +518,7 @@ class JavaBoosterImpl implements Booster { public synchronized void dispose() { if (handle != 0L) { - XgboostJNI.XGBoosterFree(handle); + XGBoostJNI.XGBoosterFree(handle); handle = 0; } } diff --git a/jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/NativeLibLoader.java b/jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/java/NativeLibLoader.java similarity index 99% rename from jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/NativeLibLoader.java rename to jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/java/NativeLibLoader.java index 796eb28aa..199b9ae42 100644 --- a/jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/NativeLibLoader.java +++ b/jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/java/NativeLibLoader.java @@ -13,7 +13,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package ml.dmlc.xgboost4j; +package ml.dmlc.xgboost4j.java; import java.io.*; import java.lang.reflect.Field; diff --git a/jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/Rabit.java b/jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/java/Rabit.java similarity index 84% rename from jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/Rabit.java rename to jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/java/Rabit.java index c209a2f5a..d8408d26c 100644 --- a/jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/Rabit.java +++ b/jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/java/Rabit.java @@ -1,4 +1,4 @@ -package ml.dmlc.xgboost4j; +package ml.dmlc.xgboost4j.java; import java.io.IOException; import java.util.Map; @@ -23,7 +23,7 @@ public class Rabit { private static void checkCall(int ret) throws XGBoostError { if (ret != 0) { - throw new XGBoostError(XgboostJNI.XGBGetLastError()); + throw new XGBoostError(XGBoostJNI.XGBGetLastError()); } } @@ -38,7 +38,7 @@ public class Rabit { for (java.util.Map.Entry e : envs.entrySet()) { args[idx++] = e.getKey() + '=' + e.getValue(); } - checkCall(XgboostJNI.RabitInit(args)); + checkCall(XGBoostJNI.RabitInit(args)); } /** @@ -46,7 +46,7 @@ public class Rabit { * @throws XGBoostError */ public static void shutdown() throws XGBoostError { - checkCall(XgboostJNI.RabitFinalize()); + checkCall(XGBoostJNI.RabitFinalize()); } /** @@ -55,7 +55,7 @@ public class Rabit { * @throws XGBoostError */ public static void trackerPrint(String msg) throws XGBoostError { - checkCall(XgboostJNI.RabitTrackerPrint(msg)); + checkCall(XGBoostJNI.RabitTrackerPrint(msg)); } /** @@ -66,7 +66,7 @@ public class Rabit { */ public static int versionNumber() throws XGBoostError { int[] out = new int[1]; - checkCall(XgboostJNI.RabitVersionNumber(out)); + checkCall(XGBoostJNI.RabitVersionNumber(out)); return out[0]; } @@ -77,7 +77,7 @@ public class Rabit { */ public static int getRank() throws XGBoostError { int[] out = new int[1]; - checkCall(XgboostJNI.RabitGetRank(out)); + checkCall(XGBoostJNI.RabitGetRank(out)); return out[0]; } @@ -88,7 +88,7 @@ public class Rabit { */ public static int getWorldSize() throws XGBoostError { int[] out = new int[1]; - checkCall(XgboostJNI.RabitGetWorldSize(out)); + checkCall(XGBoostJNI.RabitGetWorldSize(out)); return out[0]; } } diff --git a/jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/RabitTracker.java b/jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/java/RabitTracker.java similarity index 91% rename from jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/RabitTracker.java rename to jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/java/RabitTracker.java index 99adcb7e5..762cff7bf 100644 --- a/jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/RabitTracker.java +++ b/jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/java/RabitTracker.java @@ -1,4 +1,4 @@ -package ml.dmlc.xgboost4j; +package ml.dmlc.xgboost4j.java; @@ -21,7 +21,7 @@ public class RabitTracker { // environment variable to be pased. private Map envs = new HashMap(); // number of workers to be submitted. - private int num_workers; + private int numWorkers; private AtomicReference trackerProcess = new AtomicReference(); static { @@ -63,8 +63,12 @@ public class RabitTracker { } - public RabitTracker(int num_workers) { - this.num_workers = num_workers; + public RabitTracker(int numWorkers) + throws XGBoostError { + if (numWorkers < 1) { + throw new XGBoostError("numWorkers must be greater equal to one"); + } + this.numWorkers = numWorkers; } /** @@ -100,7 +104,7 @@ public class RabitTracker { private boolean startTrackerProcess() { try { trackerProcess.set(Runtime.getRuntime().exec("python " + tracker_py + - " --num-workers=" + String.valueOf(num_workers))); + " --log-level=DEBUG --num-workers=" + String.valueOf(numWorkers))); loadEnvs(trackerProcess.get().getInputStream()); return true; } catch (IOException ioe) { diff --git a/jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/XGBoost.java b/jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/java/XGBoost.java similarity index 99% rename from jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/XGBoost.java rename to jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/java/XGBoost.java index 839b006c4..44b7425a2 100644 --- a/jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/XGBoost.java +++ b/jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/java/XGBoost.java @@ -13,7 +13,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package ml.dmlc.xgboost4j; +package ml.dmlc.xgboost4j.java; import java.util.*; @@ -143,7 +143,7 @@ public class XGBoost { * @return evaluation history * @throws XGBoostError native error */ - public static String[] crossValiation( + public static String[] crossValidation( Map params, DMatrix data, int round, diff --git a/jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/XGBoostError.java b/jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/java/XGBoostError.java similarity index 95% rename from jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/XGBoostError.java rename to jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/java/XGBoostError.java index 1f62b22fc..7da5c176d 100644 --- a/jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/XGBoostError.java +++ b/jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/java/XGBoostError.java @@ -13,7 +13,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package ml.dmlc.xgboost4j; +package ml.dmlc.xgboost4j.java; /** * custom error class for xgboost diff --git a/jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/XgboostJNI.java b/jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/java/XGBoostJNI.java similarity index 94% rename from jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/XgboostJNI.java rename to jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/java/XGBoostJNI.java index 160396df0..29ea29163 100644 --- a/jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/XgboostJNI.java +++ b/jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/java/XGBoostJNI.java @@ -13,7 +13,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package ml.dmlc.xgboost4j; +package ml.dmlc.xgboost4j.java; /** @@ -22,12 +22,13 @@ package ml.dmlc.xgboost4j; * * @author hzx */ -class XgboostJNI { +class XGBoostJNI { public final static native String XGBGetLastError(); public final static native int XGDMatrixCreateFromFile(String fname, int silent, long[] out); - public final static native int XGDMatrixCreateFromDataIter(java.util.Iterator iter, String cache_info, long[] out); + final static native int XGDMatrixCreateFromDataIter(java.util.Iterator iter, + String cache_info, long[] out); public final static native int XGDMatrixCreateFromCSR(long[] indptr, int[] indices, float[] data, long[] out); diff --git a/jvm-packages/xgboost4j/src/main/scala/ml/dmlc/xgboost4j/scala/Booster.scala b/jvm-packages/xgboost4j/src/main/scala/ml/dmlc/xgboost4j/scala/Booster.scala index 524a5aa92..88032a61a 100644 --- a/jvm-packages/xgboost4j/src/main/scala/ml/dmlc/xgboost4j/scala/Booster.scala +++ b/jvm-packages/xgboost4j/src/main/scala/ml/dmlc/xgboost4j/scala/Booster.scala @@ -18,11 +18,9 @@ package ml.dmlc.xgboost4j.scala import java.io.IOException +import ml.dmlc.xgboost4j.java.XGBoostError import scala.collection.mutable -import ml.dmlc.xgboost4j.XGBoostError - - trait Booster extends Serializable { diff --git a/jvm-packages/xgboost4j/src/main/scala/ml/dmlc/xgboost4j/scala/DMatrix.scala b/jvm-packages/xgboost4j/src/main/scala/ml/dmlc/xgboost4j/scala/DMatrix.scala index 634aef190..c62784c08 100644 --- a/jvm-packages/xgboost4j/src/main/scala/ml/dmlc/xgboost4j/scala/DMatrix.scala +++ b/jvm-packages/xgboost4j/src/main/scala/ml/dmlc/xgboost4j/scala/DMatrix.scala @@ -16,10 +16,11 @@ package ml.dmlc.xgboost4j.scala -import ml.dmlc.xgboost4j.{DMatrix => JDMatrix, XGBoostError} +import _root_.scala.collection.JavaConverters._ + +import ml.dmlc.xgboost4j.java.{DMatrix => JDMatrix, DataBatch, XGBoostError} class DMatrix private[scala](private[scala] val jDMatrix: JDMatrix) { - /** * init DMatrix from file (svmlight format) * @@ -43,6 +44,10 @@ class DMatrix private[scala](private[scala] val jDMatrix: JDMatrix) { this(new JDMatrix(headers, indices, data, st)) } + private[xgboost4j] def this(dataBatches: Iterator[DataBatch]) { + this(new JDMatrix(dataBatches.asJava, null)) + } + /** * create DMatrix from dense matrix * diff --git a/jvm-packages/xgboost4j/src/main/scala/ml/dmlc/xgboost4j/scala/EvalTrait.scala b/jvm-packages/xgboost4j/src/main/scala/ml/dmlc/xgboost4j/scala/EvalTrait.scala index 5f4e85683..388005edc 100644 --- a/jvm-packages/xgboost4j/src/main/scala/ml/dmlc/xgboost4j/scala/EvalTrait.scala +++ b/jvm-packages/xgboost4j/src/main/scala/ml/dmlc/xgboost4j/scala/EvalTrait.scala @@ -16,7 +16,8 @@ package ml.dmlc.xgboost4j.scala -import ml.dmlc.xgboost4j.{DMatrix => JDMatrix, IEvaluation} +import ml.dmlc.xgboost4j.java +import ml.dmlc.xgboost4j.java.IEvaluation trait EvalTrait extends IEvaluation { @@ -36,7 +37,7 @@ trait EvalTrait extends IEvaluation { */ def eval(predicts: Array[Array[Float]], dmat: DMatrix): Float - private[scala] def eval(predicts: Array[Array[Float]], jdmat: JDMatrix): Float = { + private[scala] def eval(predicts: Array[Array[Float]], jdmat: java.DMatrix): Float = { eval(predicts, new DMatrix(jdmat)) } } diff --git a/jvm-packages/xgboost4j/src/main/scala/ml/dmlc/xgboost4j/scala/ObjectiveTrait.scala b/jvm-packages/xgboost4j/src/main/scala/ml/dmlc/xgboost4j/scala/ObjectiveTrait.scala index 8f7bb86f0..f6d7fd496 100644 --- a/jvm-packages/xgboost4j/src/main/scala/ml/dmlc/xgboost4j/scala/ObjectiveTrait.scala +++ b/jvm-packages/xgboost4j/src/main/scala/ml/dmlc/xgboost4j/scala/ObjectiveTrait.scala @@ -18,7 +18,8 @@ package ml.dmlc.xgboost4j.scala import scala.collection.JavaConverters._ -import ml.dmlc.xgboost4j.{DMatrix => JDMatrix, IObjective} +import ml.dmlc.xgboost4j.java.{DMatrix => JDMatrix} +import ml.dmlc.xgboost4j.java.IObjective trait ObjectiveTrait extends IObjective { /** diff --git a/jvm-packages/xgboost4j/src/main/scala/ml/dmlc/xgboost4j/scala/ScalaBoosterImpl.scala b/jvm-packages/xgboost4j/src/main/scala/ml/dmlc/xgboost4j/scala/ScalaBoosterImpl.scala index fab3c1b19..bdb2fb34c 100644 --- a/jvm-packages/xgboost4j/src/main/scala/ml/dmlc/xgboost4j/scala/ScalaBoosterImpl.scala +++ b/jvm-packages/xgboost4j/src/main/scala/ml/dmlc/xgboost4j/scala/ScalaBoosterImpl.scala @@ -16,12 +16,11 @@ package ml.dmlc.xgboost4j.scala +import ml.dmlc.xgboost4j.java import scala.collection.JavaConverters._ import scala.collection.mutable -import ml.dmlc.xgboost4j.{Booster => JBooster} - -private[scala] class ScalaBoosterImpl private[xgboost4j](booster: JBooster) extends Booster { +private[scala] class ScalaBoosterImpl private[xgboost4j](booster: java.Booster) extends Booster { override def setParam(key: String, value: String): Unit = { booster.setParam(key, value) diff --git a/jvm-packages/xgboost4j/src/main/scala/ml/dmlc/xgboost4j/scala/XGBoost.scala b/jvm-packages/xgboost4j/src/main/scala/ml/dmlc/xgboost4j/scala/XGBoost.scala index e32bd46a7..58ed51527 100644 --- a/jvm-packages/xgboost4j/src/main/scala/ml/dmlc/xgboost4j/scala/XGBoost.scala +++ b/jvm-packages/xgboost4j/src/main/scala/ml/dmlc/xgboost4j/scala/XGBoost.scala @@ -16,10 +16,9 @@ package ml.dmlc.xgboost4j.scala +import ml.dmlc.xgboost4j.java.{XGBoost => JXGBoost} import scala.collection.JavaConverters._ -import ml.dmlc.xgboost4j.{XGBoost => JXGBoost} - object XGBoost { def train( @@ -35,7 +34,7 @@ object XGBoost { new ScalaBoosterImpl(xgboostInJava) } - def crossValiation( + def crossValidation( params: Map[String, AnyRef], data: DMatrix, round: Int, @@ -43,7 +42,7 @@ object XGBoost { metrics: Array[String] = null, obj: ObjectiveTrait = null, eval: EvalTrait = null): Array[String] = { - JXGBoost.crossValiation(params.asJava, data.jDMatrix, round, nfold, metrics, obj, eval) + JXGBoost.crossValidation(params.asJava, data.jDMatrix, round, nfold, metrics, obj, eval) } def initBoostModel(params: Map[String, AnyRef], dMatrixs: Array[DMatrix]): Booster = { diff --git a/jvm-packages/xgboost4j/src/native/xgboost4j.cpp b/jvm-packages/xgboost4j/src/native/xgboost4j.cpp index 1c35c8311..9475bb248 100644 --- a/jvm-packages/xgboost4j/src/native/xgboost4j.cpp +++ b/jvm-packages/xgboost4j/src/native/xgboost4j.cpp @@ -134,11 +134,11 @@ XGB_EXTERN_C int XGBoost4jCallbackDataIterNext( } /* - * Class: ml_dmlc_xgboost4j_XgboostJNI + * Class: ml_dmlc_xgboost4j_java_XGBoostJNI * Method: XGBGetLastError * Signature: ()Ljava/lang/String; */ -JNIEXPORT jstring JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGBGetLastError +JNIEXPORT jstring JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGBGetLastError (JNIEnv *jenv, jclass jcls) { jstring jresult = 0; const char* result = XGBGetLastError(); @@ -149,11 +149,11 @@ JNIEXPORT jstring JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGBGetLastError } /* - * Class: ml_dmlc_xgboost4j_XgboostJNI + * Class: ml_dmlc_xgboost4j_java_XGBoostJNI * Method: XGDMatrixCreateFromDataIter * Signature: (Ljava/util/Iterator;Ljava/lang/String;[J)I */ -JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGDMatrixCreateFromDataIter +JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGDMatrixCreateFromDataIter (JNIEnv *jenv, jclass jcls, jobject jiter, jstring jcache_info, jlongArray jout) { DMatrixHandle result; const char* cache_info = nullptr; @@ -170,11 +170,11 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGDMatrixCreateFromData } /* - * Class: ml_dmlc_xgboost4j_XgboostJNI + * Class: ml_dmlc_xgboost4j_java_XGBoostJNI * Method: XGDMatrixCreateFromFile * Signature: (Ljava/lang/String;I[J)I */ -JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGDMatrixCreateFromFile +JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGDMatrixCreateFromFile (JNIEnv *jenv, jclass jcls, jstring jfname, jint jsilent, jlongArray jout) { DMatrixHandle result; const char* fname = jenv->GetStringUTFChars(jfname, 0); @@ -187,11 +187,11 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGDMatrixCreateFromFile } /* - * Class: ml_dmlc_xgboost4j_XgboostJNI + * Class: ml_dmlc_xgboost4j_java_XGBoostJNI * Method: XGDMatrixCreateFromCSR * Signature: ([J[J[F)J */ -JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGDMatrixCreateFromCSR +JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGDMatrixCreateFromCSR (JNIEnv *jenv, jclass jcls, jlongArray jindptr, jintArray jindices, jfloatArray jdata, jlongArray jout) { DMatrixHandle result; jlong* indptr = jenv->GetLongArrayElements(jindptr, 0); @@ -209,11 +209,11 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGDMatrixCreateFromCSR } /* - * Class: ml_dmlc_xgboost4j_XgboostJNI + * Class: ml_dmlc_xgboost4j_java_XGBoostJNI * Method: XGDMatrixCreateFromCSC * Signature: ([J[J[F)J */ -JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGDMatrixCreateFromCSC +JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGDMatrixCreateFromCSC (JNIEnv *jenv, jclass jcls, jlongArray jindptr, jintArray jindices, jfloatArray jdata, jlongArray jout) { DMatrixHandle result; jlong* indptr = jenv->GetLongArrayElements(jindptr, NULL); @@ -233,11 +233,11 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGDMatrixCreateFromCSC } /* - * Class: ml_dmlc_xgboost4j_XgboostJNI + * Class: ml_dmlc_xgboost4j_java_XGBoostJNI * Method: XGDMatrixCreateFromMat * Signature: ([FIIF)J */ -JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGDMatrixCreateFromMat +JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGDMatrixCreateFromMat (JNIEnv *jenv, jclass jcls, jfloatArray jdata, jint jnrow, jint jncol, jfloat jmiss, jlongArray jout) { DMatrixHandle result; jfloat* data = jenv->GetFloatArrayElements(jdata, 0); @@ -251,11 +251,11 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGDMatrixCreateFromMat } /* - * Class: ml_dmlc_xgboost4j_XgboostJNI + * Class: ml_dmlc_xgboost4j_java_XGBoostJNI * Method: XGDMatrixSliceDMatrix * Signature: (J[I)J */ -JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGDMatrixSliceDMatrix +JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGDMatrixSliceDMatrix (JNIEnv *jenv, jclass jcls, jlong jhandle, jintArray jindexset, jlongArray jout) { DMatrixHandle result; DMatrixHandle handle = (DMatrixHandle) jhandle; @@ -272,11 +272,11 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGDMatrixSliceDMatrix } /* - * Class: ml_dmlc_xgboost4j_XgboostJNI + * Class: ml_dmlc_xgboost4j_java_XGBoostJNI * Method: XGDMatrixFree * Signature: (J)V */ -JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGDMatrixFree +JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGDMatrixFree (JNIEnv *jenv, jclass jcls, jlong jhandle) { DMatrixHandle handle = (DMatrixHandle) jhandle; int ret = XGDMatrixFree(handle); @@ -284,11 +284,11 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGDMatrixFree } /* - * Class: ml_dmlc_xgboost4j_XgboostJNI + * Class: ml_dmlc_xgboost4j_java_XGBoostJNI * Method: XGDMatrixSaveBinary * Signature: (JLjava/lang/String;I)V */ -JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGDMatrixSaveBinary +JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGDMatrixSaveBinary (JNIEnv *jenv, jclass jcls, jlong jhandle, jstring jfname, jint jsilent) { DMatrixHandle handle = (DMatrixHandle) jhandle; const char* fname = jenv->GetStringUTFChars(jfname, 0); @@ -298,11 +298,11 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGDMatrixSaveBinary } /* - * Class: ml_dmlc_xgboost4j_XgboostJNI + * Class: ml_dmlc_xgboost4j_java_XGBoostJNI * Method: XGDMatrixSetFloatInfo * Signature: (JLjava/lang/String;[F)V */ -JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGDMatrixSetFloatInfo +JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGDMatrixSetFloatInfo (JNIEnv *jenv, jclass jcls, jlong jhandle, jstring jfield, jfloatArray jarray) { DMatrixHandle handle = (DMatrixHandle) jhandle; const char* field = jenv->GetStringUTFChars(jfield, 0); @@ -317,11 +317,11 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGDMatrixSetFloatInfo } /* - * Class: ml_dmlc_xgboost4j_XgboostJNI + * Class: ml_dmlc_xgboost4j_java_XGBoostJNI * Method: XGDMatrixSetUIntInfo * Signature: (JLjava/lang/String;[I)V */ -JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGDMatrixSetUIntInfo +JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGDMatrixSetUIntInfo (JNIEnv *jenv, jclass jcls, jlong jhandle, jstring jfield, jintArray jarray) { DMatrixHandle handle = (DMatrixHandle) jhandle; const char* field = jenv->GetStringUTFChars(jfield, 0); @@ -336,11 +336,11 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGDMatrixSetUIntInfo } /* - * Class: ml_dmlc_xgboost4j_XgboostJNI + * Class: ml_dmlc_xgboost4j_java_XGBoostJNI * Method: XGDMatrixSetGroup * Signature: (J[I)V */ -JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGDMatrixSetGroup +JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGDMatrixSetGroup (JNIEnv * jenv, jclass jcls, jlong jhandle, jintArray jarray) { DMatrixHandle handle = (DMatrixHandle) jhandle; jint* array = jenv->GetIntArrayElements(jarray, NULL); @@ -352,11 +352,11 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGDMatrixSetGroup } /* - * Class: ml_dmlc_xgboost4j_XgboostJNI + * Class: ml_dmlc_xgboost4j_java_XGBoostJNI * Method: XGDMatrixGetFloatInfo * Signature: (JLjava/lang/String;)[F */ -JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGDMatrixGetFloatInfo +JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGDMatrixGetFloatInfo (JNIEnv *jenv, jclass jcls, jlong jhandle, jstring jfield, jobjectArray jout) { DMatrixHandle handle = (DMatrixHandle) jhandle; const char* field = jenv->GetStringUTFChars(jfield, 0); @@ -374,11 +374,11 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGDMatrixGetFloatInfo } /* - * Class: ml_dmlc_xgboost4j_XgboostJNI + * Class: ml_dmlc_xgboost4j_java_XGBoostJNI * Method: XGDMatrixGetUIntInfo * Signature: (JLjava/lang/String;)[I */ -JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGDMatrixGetUIntInfo +JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGDMatrixGetUIntInfo (JNIEnv *jenv, jclass jcls, jlong jhandle, jstring jfield, jobjectArray jout) { DMatrixHandle handle = (DMatrixHandle) jhandle; const char* field = jenv->GetStringUTFChars(jfield, 0); @@ -395,11 +395,11 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGDMatrixGetUIntInfo } /* - * Class: ml_dmlc_xgboost4j_XgboostJNI + * Class: ml_dmlc_xgboost4j_java_XGBoostJNI * Method: XGDMatrixNumRow * Signature: (J)J */ -JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGDMatrixNumRow +JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGDMatrixNumRow (JNIEnv *jenv, jclass jcls, jlong jhandle, jlongArray jout) { DMatrixHandle handle = (DMatrixHandle) jhandle; bst_ulong result[1]; @@ -409,11 +409,11 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGDMatrixNumRow } /* - * Class: ml_dmlc_xgboost4j_XgboostJNI + * Class: ml_dmlc_xgboost4j_java_XGBoostJNI * Method: XGBoosterCreate * Signature: ([J)J */ -JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGBoosterCreate +JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGBoosterCreate (JNIEnv *jenv, jclass jcls, jlongArray jhandles, jlongArray jout) { std::vector handles; if (jhandles != nullptr) { @@ -431,11 +431,11 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGBoosterCreate } /* - * Class: ml_dmlc_xgboost4j_XgboostJNI + * Class: ml_dmlc_xgboost4j_java_XGBoostJNI * Method: XGBoosterFree * Signature: (J)V */ -JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGBoosterFree +JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGBoosterFree (JNIEnv *jenv, jclass jcls, jlong jhandle) { BoosterHandle handle = (BoosterHandle) jhandle; return XGBoosterFree(handle); @@ -443,11 +443,11 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGBoosterFree /* - * Class: ml_dmlc_xgboost4j_XgboostJNI + * Class: ml_dmlc_xgboost4j_java_XGBoostJNI * Method: XGBoosterSetParam * Signature: (JLjava/lang/String;Ljava/lang/String;)V */ -JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGBoosterSetParam +JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGBoosterSetParam (JNIEnv *jenv, jclass jcls, jlong jhandle, jstring jname, jstring jvalue) { BoosterHandle handle = (BoosterHandle) jhandle; const char* name = jenv->GetStringUTFChars(jname, 0); @@ -460,11 +460,11 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGBoosterSetParam } /* - * Class: ml_dmlc_xgboost4j_XgboostJNI + * Class: ml_dmlc_xgboost4j_java_XGBoostJNI * Method: XGBoosterUpdateOneIter * Signature: (JIJ)V */ -JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGBoosterUpdateOneIter +JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGBoosterUpdateOneIter (JNIEnv *jenv, jclass jcls, jlong jhandle, jint jiter, jlong jdtrain) { BoosterHandle handle = (BoosterHandle) jhandle; DMatrixHandle dtrain = (DMatrixHandle) jdtrain; @@ -472,11 +472,11 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGBoosterUpdateOneIter } /* - * Class: ml_dmlc_xgboost4j_XgboostJNI + * Class: ml_dmlc_xgboost4j_java_XGBoostJNI * Method: XGBoosterBoostOneIter * Signature: (JJ[F[F)V */ -JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGBoosterBoostOneIter +JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGBoosterBoostOneIter (JNIEnv *jenv, jclass jcls, jlong jhandle, jlong jdtrain, jfloatArray jgrad, jfloatArray jhess) { BoosterHandle handle = (BoosterHandle) jhandle; DMatrixHandle dtrain = (DMatrixHandle) jdtrain; @@ -491,11 +491,11 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGBoosterBoostOneIter } /* - * Class: ml_dmlc_xgboost4j_XgboostJNI + * Class: ml_dmlc_xgboost4j_java_XGBoostJNI * Method: XGBoosterEvalOneIter * Signature: (JI[J[Ljava/lang/String;)Ljava/lang/String; */ -JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGBoosterEvalOneIter +JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGBoosterEvalOneIter (JNIEnv *jenv, jclass jcls, jlong jhandle, jint jiter, jlongArray jdmats, jobjectArray jevnames, jobjectArray jout) { BoosterHandle handle = (BoosterHandle) jhandle; std::vector dmats; @@ -530,11 +530,11 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGBoosterEvalOneIter } /* - * Class: ml_dmlc_xgboost4j_XgboostJNI + * Class: ml_dmlc_xgboost4j_java_XGBoostJNI * Method: XGBoosterPredict * Signature: (JJIJ)[F */ -JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGBoosterPredict +JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGBoosterPredict (JNIEnv *jenv, jclass jcls, jlong jhandle, jlong jdmat, jint joption_mask, jint jntree_limit, jobjectArray jout) { BoosterHandle handle = (BoosterHandle) jhandle; DMatrixHandle dmat = (DMatrixHandle) jdmat; @@ -550,11 +550,11 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGBoosterPredict } /* - * Class: ml_dmlc_xgboost4j_XgboostJNI + * Class: ml_dmlc_xgboost4j_java_XGBoostJNI * Method: XGBoosterLoadModel * Signature: (JLjava/lang/String;)V */ -JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGBoosterLoadModel +JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGBoosterLoadModel (JNIEnv *jenv, jclass jcls, jlong jhandle, jstring jfname) { BoosterHandle handle = (BoosterHandle) jhandle; const char* fname = jenv->GetStringUTFChars(jfname, 0); @@ -565,11 +565,11 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGBoosterLoadModel } /* - * Class: ml_dmlc_xgboost4j_XgboostJNI + * Class: ml_dmlc_xgboost4j_java_XGBoostJNI * Method: XGBoosterSaveModel * Signature: (JLjava/lang/String;)V */ -JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGBoosterSaveModel +JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGBoosterSaveModel (JNIEnv *jenv, jclass jcls, jlong jhandle, jstring jfname) { BoosterHandle handle = (BoosterHandle) jhandle; const char* fname = jenv->GetStringUTFChars(jfname, 0); @@ -580,11 +580,11 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGBoosterSaveModel } /* - * Class: ml_dmlc_xgboost4j_XgboostJNI + * Class: ml_dmlc_xgboost4j_java_XGBoostJNI * Method: XGBoosterLoadModelFromBuffer * Signature: (J[B)I */ -JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGBoosterLoadModelFromBuffer +JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGBoosterLoadModelFromBuffer (JNIEnv *jenv, jclass jcls, jlong jhandle, jbyteArray jbytes) { BoosterHandle handle = (BoosterHandle) jhandle; jbyte* buffer = jenv->GetByteArrayElements(jbytes, 0); @@ -595,11 +595,11 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGBoosterLoadModelFromB } /* - * Class: ml_dmlc_xgboost4j_XgboostJNI + * Class: ml_dmlc_xgboost4j_java_XGBoostJNI * Method: XGBoosterGetModelRaw * Signature: (J[[B)I */ -JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGBoosterGetModelRaw +JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGBoosterGetModelRaw (JNIEnv * jenv, jclass jcls, jlong jhandle, jobjectArray jout) { BoosterHandle handle = (BoosterHandle) jhandle; bst_ulong len = 0; @@ -615,11 +615,11 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGBoosterGetModelRaw } /* - * Class: ml_dmlc_xgboost4j_XgboostJNI + * Class: ml_dmlc_xgboost4j_java_XGBoostJNI * Method: XGBoosterDumpModel * Signature: (JLjava/lang/String;I)[Ljava/lang/String; */ -JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGBoosterDumpModel +JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGBoosterDumpModel (JNIEnv *jenv, jclass jcls, jlong jhandle, jstring jfmap, jint jwith_stats, jobjectArray jout) { BoosterHandle handle = (BoosterHandle) jhandle; const char *fmap = jenv->GetStringUTFChars(jfmap, 0); @@ -640,11 +640,11 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGBoosterDumpModel } /* - * Class: ml_dmlc_xgboost4j_XgboostJNI + * Class: ml_dmlc_xgboost4j_java_XGBoostJNI * Method: XGBoosterLoadRabitCheckpoint * Signature: (J[I)I */ -JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGBoosterLoadRabitCheckpoint +JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGBoosterLoadRabitCheckpoint (JNIEnv *jenv , jclass jcls, jlong jhandle, jintArray jout) { BoosterHandle handle = (BoosterHandle) jhandle; int version; @@ -654,22 +654,22 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGBoosterLoadRabitCheck } /* - * Class: ml_dmlc_xgboost4j_XgboostJNI + * Class: ml_dmlc_xgboost4j_java_XGBoostJNI * Method: XGBoosterSaveRabitCheckpoint * Signature: (J)I */ -JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGBoosterSaveRabitCheckpoint +JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGBoosterSaveRabitCheckpoint (JNIEnv *jenv, jclass jcls, jlong jhandle) { BoosterHandle handle = (BoosterHandle) jhandle; return XGBoosterSaveRabitCheckpoint(handle); } /* - * Class: ml_dmlc_xgboost4j_XgboostJNI + * Class: ml_dmlc_xgboost4j_java_XGBoostJNI * Method: RabitInit * Signature: ([Ljava/lang/String;)I */ -JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_RabitInit +JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_RabitInit (JNIEnv *jenv, jclass jcls, jobjectArray jargs) { std::vector args; std::vector argv; @@ -691,22 +691,22 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_RabitInit } /* - * Class: ml_dmlc_xgboost4j_XgboostJNI + * Class: ml_dmlc_xgboost4j_java_XGBoostJNI * Method: RabitFinalize * Signature: ()I */ -JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_RabitFinalize +JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_RabitFinalize (JNIEnv *jenv, jclass jcls) { RabitFinalize(); return 0; } /* - * Class: ml_dmlc_xgboost4j_XgboostJNI + * Class: ml_dmlc_xgboost4j_java_XGBoostJNI * Method: RabitTrackerPrint * Signature: (Ljava/lang/String;)I */ -JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_RabitTrackerPrint +JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_RabitTrackerPrint (JNIEnv *jenv, jclass jcls, jstring jmsg) { std::string str(jenv->GetStringUTFChars(jmsg, 0), jenv->GetStringLength(jmsg)); @@ -715,11 +715,11 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_RabitTrackerPrint } /* - * Class: ml_dmlc_xgboost4j_XgboostJNI + * Class: ml_dmlc_xgboost4j_java_XGBoostJNI * Method: RabitGetRank * Signature: ([I)I */ -JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_RabitGetRank +JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_RabitGetRank (JNIEnv *jenv, jclass jcls, jintArray jout) { int rank = RabitGetRank(); jenv->SetIntArrayRegion(jout, 0, 1, &rank); @@ -727,11 +727,11 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_RabitGetRank } /* - * Class: ml_dmlc_xgboost4j_XgboostJNI + * Class: ml_dmlc_xgboost4j_java_XGBoostJNI * Method: RabitGetWorldSize * Signature: ([I)I */ -JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_RabitGetWorldSize +JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_RabitGetWorldSize (JNIEnv *jenv, jclass jcls, jintArray jout) { int out = RabitGetWorldSize(); jenv->SetIntArrayRegion(jout, 0, 1, &out); @@ -739,11 +739,11 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_RabitGetWorldSize } /* - * Class: ml_dmlc_xgboost4j_XgboostJNI + * Class: ml_dmlc_xgboost4j_java_XGBoostJNI * Method: RabitVersionNumber * Signature: ([I)I */ -JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_RabitVersionNumber +JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_RabitVersionNumber (JNIEnv *jenv, jclass jcls, jintArray jout) { int out = RabitVersionNumber(); jenv->SetIntArrayRegion(jout, 0, 1, &out); diff --git a/jvm-packages/xgboost4j/src/native/xgboost4j.h b/jvm-packages/xgboost4j/src/native/xgboost4j.h index 0a3eeae3a..eb2e0244a 100644 --- a/jvm-packages/xgboost4j/src/native/xgboost4j.h +++ b/jvm-packages/xgboost4j/src/native/xgboost4j.h @@ -1,306 +1,306 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ #include -/* Header for class ml_dmlc_xgboost4j_XgboostJNI */ +/* Header for class ml_dmlc_xgboost4j_java_XGBoostJNI */ -#ifndef _Included_ml_dmlc_xgboost4j_XgboostJNI -#define _Included_ml_dmlc_xgboost4j_XgboostJNI +#ifndef _Included_ml_dmlc_xgboost4j_java_XGBoostJNI +#define _Included_ml_dmlc_xgboost4j_java_XGBoostJNI #ifdef __cplusplus extern "C" { #endif /* - * Class: ml_dmlc_xgboost4j_XgboostJNI + * Class: ml_dmlc_xgboost4j_java_XGBoostJNI * Method: XGBGetLastError * Signature: ()Ljava/lang/String; */ -JNIEXPORT jstring JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGBGetLastError +JNIEXPORT jstring JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGBGetLastError (JNIEnv *, jclass); /* - * Class: ml_dmlc_xgboost4j_XgboostJNI + * Class: ml_dmlc_xgboost4j_java_XGBoostJNI * Method: XGDMatrixCreateFromFile * Signature: (Ljava/lang/String;I[J)I */ -JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGDMatrixCreateFromFile +JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGDMatrixCreateFromFile (JNIEnv *, jclass, jstring, jint, jlongArray); /* - * Class: ml_dmlc_xgboost4j_XgboostJNI + * Class: ml_dmlc_xgboost4j_java_XGBoostJNI * Method: XGDMatrixCreateFromDataIter * Signature: (Ljava/util/Iterator;Ljava/lang/String;[J)I */ -JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGDMatrixCreateFromDataIter +JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGDMatrixCreateFromDataIter (JNIEnv *, jclass, jobject, jstring, jlongArray); /* - * Class: ml_dmlc_xgboost4j_XgboostJNI + * Class: ml_dmlc_xgboost4j_java_XGBoostJNI * Method: XGDMatrixCreateFromCSR * Signature: ([J[I[F[J)I */ -JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGDMatrixCreateFromCSR +JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGDMatrixCreateFromCSR (JNIEnv *, jclass, jlongArray, jintArray, jfloatArray, jlongArray); /* - * Class: ml_dmlc_xgboost4j_XgboostJNI + * Class: ml_dmlc_xgboost4j_java_XGBoostJNI * Method: XGDMatrixCreateFromCSC * Signature: ([J[I[F[J)I */ -JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGDMatrixCreateFromCSC +JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGDMatrixCreateFromCSC (JNIEnv *, jclass, jlongArray, jintArray, jfloatArray, jlongArray); /* - * Class: ml_dmlc_xgboost4j_XgboostJNI + * Class: ml_dmlc_xgboost4j_java_XGBoostJNI * Method: XGDMatrixCreateFromMat * Signature: ([FIIF[J)I */ -JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGDMatrixCreateFromMat +JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGDMatrixCreateFromMat (JNIEnv *, jclass, jfloatArray, jint, jint, jfloat, jlongArray); /* - * Class: ml_dmlc_xgboost4j_XgboostJNI + * Class: ml_dmlc_xgboost4j_java_XGBoostJNI * Method: XGDMatrixSliceDMatrix * Signature: (J[I[J)I */ -JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGDMatrixSliceDMatrix +JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGDMatrixSliceDMatrix (JNIEnv *, jclass, jlong, jintArray, jlongArray); /* - * Class: ml_dmlc_xgboost4j_XgboostJNI + * Class: ml_dmlc_xgboost4j_java_XGBoostJNI * Method: XGDMatrixFree * Signature: (J)I */ -JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGDMatrixFree +JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGDMatrixFree (JNIEnv *, jclass, jlong); /* - * Class: ml_dmlc_xgboost4j_XgboostJNI + * Class: ml_dmlc_xgboost4j_java_XGBoostJNI * Method: XGDMatrixSaveBinary * Signature: (JLjava/lang/String;I)I */ -JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGDMatrixSaveBinary +JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGDMatrixSaveBinary (JNIEnv *, jclass, jlong, jstring, jint); /* - * Class: ml_dmlc_xgboost4j_XgboostJNI + * Class: ml_dmlc_xgboost4j_java_XGBoostJNI * Method: XGDMatrixSetFloatInfo * Signature: (JLjava/lang/String;[F)I */ -JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGDMatrixSetFloatInfo +JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGDMatrixSetFloatInfo (JNIEnv *, jclass, jlong, jstring, jfloatArray); /* - * Class: ml_dmlc_xgboost4j_XgboostJNI + * Class: ml_dmlc_xgboost4j_java_XGBoostJNI * Method: XGDMatrixSetUIntInfo * Signature: (JLjava/lang/String;[I)I */ -JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGDMatrixSetUIntInfo +JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGDMatrixSetUIntInfo (JNIEnv *, jclass, jlong, jstring, jintArray); /* - * Class: ml_dmlc_xgboost4j_XgboostJNI + * Class: ml_dmlc_xgboost4j_java_XGBoostJNI * Method: XGDMatrixSetGroup * Signature: (J[I)I */ -JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGDMatrixSetGroup +JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGDMatrixSetGroup (JNIEnv *, jclass, jlong, jintArray); /* - * Class: ml_dmlc_xgboost4j_XgboostJNI + * Class: ml_dmlc_xgboost4j_java_XGBoostJNI * Method: XGDMatrixGetFloatInfo * Signature: (JLjava/lang/String;[[F)I */ -JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGDMatrixGetFloatInfo +JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGDMatrixGetFloatInfo (JNIEnv *, jclass, jlong, jstring, jobjectArray); /* - * Class: ml_dmlc_xgboost4j_XgboostJNI + * Class: ml_dmlc_xgboost4j_java_XGBoostJNI * Method: XGDMatrixGetUIntInfo * Signature: (JLjava/lang/String;[[I)I */ -JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGDMatrixGetUIntInfo +JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGDMatrixGetUIntInfo (JNIEnv *, jclass, jlong, jstring, jobjectArray); /* - * Class: ml_dmlc_xgboost4j_XgboostJNI + * Class: ml_dmlc_xgboost4j_java_XGBoostJNI * Method: XGDMatrixNumRow * Signature: (J[J)I */ -JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGDMatrixNumRow +JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGDMatrixNumRow (JNIEnv *, jclass, jlong, jlongArray); /* - * Class: ml_dmlc_xgboost4j_XgboostJNI + * Class: ml_dmlc_xgboost4j_java_XGBoostJNI * Method: XGBoosterCreate * Signature: ([J[J)I */ -JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGBoosterCreate +JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGBoosterCreate (JNIEnv *, jclass, jlongArray, jlongArray); /* - * Class: ml_dmlc_xgboost4j_XgboostJNI + * Class: ml_dmlc_xgboost4j_java_XGBoostJNI * Method: XGBoosterFree * Signature: (J)I */ -JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGBoosterFree +JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGBoosterFree (JNIEnv *, jclass, jlong); /* - * Class: ml_dmlc_xgboost4j_XgboostJNI + * Class: ml_dmlc_xgboost4j_java_XGBoostJNI * Method: XGBoosterSetParam * Signature: (JLjava/lang/String;Ljava/lang/String;)I */ -JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGBoosterSetParam +JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGBoosterSetParam (JNIEnv *, jclass, jlong, jstring, jstring); /* - * Class: ml_dmlc_xgboost4j_XgboostJNI + * Class: ml_dmlc_xgboost4j_java_XGBoostJNI * Method: XGBoosterUpdateOneIter * Signature: (JIJ)I */ -JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGBoosterUpdateOneIter +JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGBoosterUpdateOneIter (JNIEnv *, jclass, jlong, jint, jlong); /* - * Class: ml_dmlc_xgboost4j_XgboostJNI + * Class: ml_dmlc_xgboost4j_java_XGBoostJNI * Method: XGBoosterBoostOneIter * Signature: (JJ[F[F)I */ -JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGBoosterBoostOneIter +JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGBoosterBoostOneIter (JNIEnv *, jclass, jlong, jlong, jfloatArray, jfloatArray); /* - * Class: ml_dmlc_xgboost4j_XgboostJNI + * Class: ml_dmlc_xgboost4j_java_XGBoostJNI * Method: XGBoosterEvalOneIter * Signature: (JI[J[Ljava/lang/String;[Ljava/lang/String;)I */ -JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGBoosterEvalOneIter +JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGBoosterEvalOneIter (JNIEnv *, jclass, jlong, jint, jlongArray, jobjectArray, jobjectArray); /* - * Class: ml_dmlc_xgboost4j_XgboostJNI + * Class: ml_dmlc_xgboost4j_java_XGBoostJNI * Method: XGBoosterPredict * Signature: (JJII[[F)I */ -JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGBoosterPredict +JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGBoosterPredict (JNIEnv *, jclass, jlong, jlong, jint, jint, jobjectArray); /* - * Class: ml_dmlc_xgboost4j_XgboostJNI + * Class: ml_dmlc_xgboost4j_java_XGBoostJNI * Method: XGBoosterLoadModel * Signature: (JLjava/lang/String;)I */ -JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGBoosterLoadModel +JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGBoosterLoadModel (JNIEnv *, jclass, jlong, jstring); /* - * Class: ml_dmlc_xgboost4j_XgboostJNI + * Class: ml_dmlc_xgboost4j_java_XGBoostJNI * Method: XGBoosterSaveModel * Signature: (JLjava/lang/String;)I */ -JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGBoosterSaveModel +JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGBoosterSaveModel (JNIEnv *, jclass, jlong, jstring); /* - * Class: ml_dmlc_xgboost4j_XgboostJNI + * Class: ml_dmlc_xgboost4j_java_XGBoostJNI * Method: XGBoosterLoadModelFromBuffer * Signature: (J[B)I */ -JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGBoosterLoadModelFromBuffer +JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGBoosterLoadModelFromBuffer (JNIEnv *, jclass, jlong, jbyteArray); /* - * Class: ml_dmlc_xgboost4j_XgboostJNI + * Class: ml_dmlc_xgboost4j_java_XGBoostJNI * Method: XGBoosterGetModelRaw * Signature: (J[[B)I */ -JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGBoosterGetModelRaw +JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGBoosterGetModelRaw (JNIEnv *, jclass, jlong, jobjectArray); /* - * Class: ml_dmlc_xgboost4j_XgboostJNI + * Class: ml_dmlc_xgboost4j_java_XGBoostJNI * Method: XGBoosterDumpModel * Signature: (JLjava/lang/String;I[[Ljava/lang/String;)I */ -JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGBoosterDumpModel +JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGBoosterDumpModel (JNIEnv *, jclass, jlong, jstring, jint, jobjectArray); /* - * Class: ml_dmlc_xgboost4j_XgboostJNI + * Class: ml_dmlc_xgboost4j_java_XGBoostJNI * Method: XGBoosterGetAttr * Signature: (JLjava/lang/String;[Ljava/lang/String;)I */ -JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGBoosterGetAttr +JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGBoosterGetAttr (JNIEnv *, jclass, jlong, jstring, jobjectArray); /* - * Class: ml_dmlc_xgboost4j_XgboostJNI + * Class: ml_dmlc_xgboost4j_java_XGBoostJNI * Method: XGBoosterSetAttr * Signature: (JLjava/lang/String;Ljava/lang/String;)I */ -JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGBoosterSetAttr +JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGBoosterSetAttr (JNIEnv *, jclass, jlong, jstring, jstring); /* - * Class: ml_dmlc_xgboost4j_XgboostJNI + * Class: ml_dmlc_xgboost4j_java_XGBoostJNI * Method: XGBoosterLoadRabitCheckpoint * Signature: (J[I)I */ -JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGBoosterLoadRabitCheckpoint +JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGBoosterLoadRabitCheckpoint (JNIEnv *, jclass, jlong, jintArray); /* - * Class: ml_dmlc_xgboost4j_XgboostJNI + * Class: ml_dmlc_xgboost4j_java_XGBoostJNI * Method: XGBoosterSaveRabitCheckpoint * Signature: (J)I */ -JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_XGBoosterSaveRabitCheckpoint +JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_XGBoosterSaveRabitCheckpoint (JNIEnv *, jclass, jlong); /* - * Class: ml_dmlc_xgboost4j_XgboostJNI + * Class: ml_dmlc_xgboost4j_java_XGBoostJNI * Method: RabitInit * Signature: ([Ljava/lang/String;)I */ -JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_RabitInit +JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_RabitInit (JNIEnv *, jclass, jobjectArray); /* - * Class: ml_dmlc_xgboost4j_XgboostJNI + * Class: ml_dmlc_xgboost4j_java_XGBoostJNI * Method: RabitFinalize * Signature: ()I */ -JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_RabitFinalize +JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_RabitFinalize (JNIEnv *, jclass); /* - * Class: ml_dmlc_xgboost4j_XgboostJNI + * Class: ml_dmlc_xgboost4j_java_XGBoostJNI * Method: RabitTrackerPrint * Signature: (Ljava/lang/String;)I */ -JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_RabitTrackerPrint +JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_RabitTrackerPrint (JNIEnv *, jclass, jstring); /* - * Class: ml_dmlc_xgboost4j_XgboostJNI + * Class: ml_dmlc_xgboost4j_java_XGBoostJNI * Method: RabitGetRank * Signature: ([I)I */ -JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_RabitGetRank +JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_RabitGetRank (JNIEnv *, jclass, jintArray); /* - * Class: ml_dmlc_xgboost4j_XgboostJNI + * Class: ml_dmlc_xgboost4j_java_XGBoostJNI * Method: RabitGetWorldSize * Signature: ([I)I */ -JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_RabitGetWorldSize +JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_RabitGetWorldSize (JNIEnv *, jclass, jintArray); /* - * Class: ml_dmlc_xgboost4j_XgboostJNI + * Class: ml_dmlc_xgboost4j_java_XGBoostJNI * Method: RabitVersionNumber * Signature: ([I)I */ -JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_XgboostJNI_RabitVersionNumber +JNIEXPORT jint JNICALL Java_ml_dmlc_xgboost4j_java_XGBoostJNI_RabitVersionNumber (JNIEnv *, jclass, jintArray); #ifdef __cplusplus diff --git a/jvm-packages/xgboost4j/src/test/java/ml/dmlc/xgboost4j/BoosterImplTest.java b/jvm-packages/xgboost4j/src/test/java/ml/dmlc/xgboost4j/java/BoosterImplTest.java similarity index 95% rename from jvm-packages/xgboost4j/src/test/java/ml/dmlc/xgboost4j/BoosterImplTest.java rename to jvm-packages/xgboost4j/src/test/java/ml/dmlc/xgboost4j/java/BoosterImplTest.java index 8f0f3a97e..1d81b5d6b 100644 --- a/jvm-packages/xgboost4j/src/test/java/ml/dmlc/xgboost4j/BoosterImplTest.java +++ b/jvm-packages/xgboost4j/src/test/java/ml/dmlc/xgboost4j/java/BoosterImplTest.java @@ -13,12 +13,13 @@ See the License for the specific language governing permissions and limitations under the License. */ -package ml.dmlc.xgboost4j; +package ml.dmlc.xgboost4j.java; import java.util.HashMap; import java.util.Map; import junit.framework.TestCase; +import ml.dmlc.xgboost4j.java.*; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.junit.Test; @@ -130,6 +131,6 @@ public class BoosterImplTest { //do 5-fold cross validation int round = 2; int nfold = 5; - String[] evalHist = XGBoost.crossValiation(param, trainMat, round, nfold, null, null, null); + String[] evalHist = XGBoost.crossValidation(param, trainMat, round, nfold, null, null, null); } } diff --git a/jvm-packages/xgboost4j/src/test/java/ml/dmlc/xgboost4j/DMatrixTest.java b/jvm-packages/xgboost4j/src/test/java/ml/dmlc/xgboost4j/java/DMatrixTest.java similarity index 96% rename from jvm-packages/xgboost4j/src/test/java/ml/dmlc/xgboost4j/DMatrixTest.java rename to jvm-packages/xgboost4j/src/test/java/ml/dmlc/xgboost4j/java/DMatrixTest.java index 6c8206940..056291ddf 100644 --- a/jvm-packages/xgboost4j/src/test/java/ml/dmlc/xgboost4j/DMatrixTest.java +++ b/jvm-packages/xgboost4j/src/test/java/ml/dmlc/xgboost4j/java/DMatrixTest.java @@ -13,12 +13,15 @@ See the License for the specific language governing permissions and limitations under the License. */ -package ml.dmlc.xgboost4j; +package ml.dmlc.xgboost4j.java; import java.util.Arrays; import java.util.Random; import junit.framework.TestCase; +import ml.dmlc.xgboost4j.java.DMatrix; +import ml.dmlc.xgboost4j.java.DataBatch; +import ml.dmlc.xgboost4j.java.XGBoostError; import org.junit.Test; /** diff --git a/jvm-packages/xgboost4j/src/test/scala/ml/dmlc/xgboost4j/scala/DMatrixSuite.scala b/jvm-packages/xgboost4j/src/test/scala/ml/dmlc/xgboost4j/scala/DMatrixSuite.scala index 64ec3e033..e6646b95b 100644 --- a/jvm-packages/xgboost4j/src/test/scala/ml/dmlc/xgboost4j/scala/DMatrixSuite.scala +++ b/jvm-packages/xgboost4j/src/test/scala/ml/dmlc/xgboost4j/scala/DMatrixSuite.scala @@ -20,8 +20,8 @@ import java.util.Arrays import scala.util.Random -import ml.dmlc.xgboost4j.{DMatrix => JDMatrix} import org.scalatest.FunSuite +import ml.dmlc.xgboost4j.java.{DMatrix => JDMatrix} class DMatrixSuite extends FunSuite { test("create DMatrix from File") { diff --git a/jvm-packages/xgboost4j/src/test/scala/ml/dmlc/xgboost4j/scala/ScalaBoosterImplSuite.scala b/jvm-packages/xgboost4j/src/test/scala/ml/dmlc/xgboost4j/scala/ScalaBoosterImplSuite.scala index e911ec985..520af35fd 100644 --- a/jvm-packages/xgboost4j/src/test/scala/ml/dmlc/xgboost4j/scala/ScalaBoosterImplSuite.scala +++ b/jvm-packages/xgboost4j/src/test/scala/ml/dmlc/xgboost4j/scala/ScalaBoosterImplSuite.scala @@ -16,7 +16,7 @@ package ml.dmlc.xgboost4j.scala -import ml.dmlc.xgboost4j.XGBoostError +import ml.dmlc.xgboost4j.java.XGBoostError import org.apache.commons.logging.LogFactory import org.scalatest.FunSuite @@ -85,6 +85,6 @@ class ScalaBoosterImplSuite extends FunSuite { "objective" -> "binary:logistic", "gamma" -> "1.0", "eval_metric" -> "error").toMap val round = 2 val nfold = 5 - XGBoost.crossValiation(params, trainMat, round, nfold, null, null, null) + XGBoost.crossValidation(params, trainMat, round, nfold, null, null, null) } } diff --git a/rabit b/rabit index be50e7b63..1392e9f3d 160000 --- a/rabit +++ b/rabit @@ -1 +1 @@ -Subproject commit be50e7b63224b9fb7ff94ce34df9f8752ef83043 +Subproject commit 1392e9f3da59bd5602ddebee944dd8fb5c6507b0