You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ch...@apache.org on 2018/12/28 10:48:27 UTC
[5/5] ignite git commit: IGNITE-10727: [ML] InfModel and Model merging
IGNITE-10727: [ML] InfModel and Model merging
This closes #5723
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/2dc0d9f7
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/2dc0d9f7
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/2dc0d9f7
Branch: refs/heads/master
Commit: 2dc0d9f75c2e83a4d81c277fbd8b7f0cae4dc869
Parents: 59b3a48
Author: Anton Dmitriev <dm...@gmail.com>
Authored: Fri Dec 28 13:48:12 2018 +0300
Committer: Yury Babak <yb...@gridgain.com>
Committed: Fri Dec 28 13:48:13 2018 +0300
----------------------------------------------------------------------
.../clustering/KMeansClusterizationExample.java | 2 +-
...niteFunctionDistributedInferenceExample.java | 100 -----
.../IgniteModelDistributedInferenceExample.java | 100 +++++
.../ml/inference/ModelStorageExample.java | 22 +-
.../TensorFlowDistributedInferenceExample.java | 20 +-
.../TensorFlowLocalInferenceExample.java | 20 +-
.../TensorFlowThreadedInferenceExample.java | 20 +-
.../ml/knn/ANNClassificationExample.java | 2 +-
.../ml/knn/KNNClassificationExample.java | 2 +-
.../examples/ml/knn/KNNRegressionExample.java | 2 +-
.../OneVsRestClassificationExample.java | 4 +-
.../DiscreteNaiveBayesTrainerExample.java | 2 +-
.../GaussianNaiveBayesTrainerExample.java | 2 +-
.../examples/ml/nn/MLPTrainerExample.java | 2 +-
.../LinearRegressionLSQRTrainerExample.java | 2 +-
...ssionLSQRTrainerWithMinMaxScalerExample.java | 2 +-
.../LinearRegressionSGDTrainerExample.java | 2 +-
.../LogisticRegressionSGDTrainerExample.java | 2 +-
.../split/TrainTestDatasetSplitterExample.java | 2 +-
.../ml/svm/SVMBinaryClassificationExample.java | 2 +-
...ecisionTreeClassificationTrainerExample.java | 2 +-
.../DecisionTreeRegressionTrainerExample.java | 2 +-
.../GDBOnTreesClassificationTrainerExample.java | 2 +-
.../GDBOnTreesRegressionTrainerExample.java | 4 +-
.../RandomForestClassificationExample.java | 2 +-
.../RandomForestRegressionExample.java | 2 +-
.../ml/xgboost/XGBoostModelParserExample.java | 18 +-
.../java/org/apache/ignite/ml/Exportable.java | 2 +-
.../java/org/apache/ignite/ml/IgniteModel.java | 59 +++
.../main/java/org/apache/ignite/ml/Model.java | 59 ---
.../ignite/ml/clustering/kmeans/Clusterer.java | 4 +-
.../clustering/kmeans/ClusterizationModel.java | 4 +-
.../ml/clustering/kmeans/KMeansModel.java | 2 +-
.../ml/composition/ModelOnFeaturesSubspace.java | 14 +-
.../ml/composition/ModelsComposition.java | 14 +-
.../ml/composition/ModelsCompositionFormat.java | 8 +-
.../boosting/GDBLearningStrategy.java | 20 +-
.../ml/composition/boosting/GDBTrainer.java | 12 +-
.../convergence/ConvergenceChecker.java | 2 +-
.../stacking/SimpleStackedDatasetTrainer.java | 6 +-
.../stacking/StackedDatasetTrainer.java | 40 +-
.../ml/composition/stacking/StackedModel.java | 16 +-
.../stacking/StackedVectorDatasetTrainer.java | 10 +-
.../ml/environment/logging/ConsoleLogger.java | 4 +-
.../ml/environment/logging/CustomMLLogger.java | 4 +-
.../ignite/ml/environment/logging/MLLogger.java | 4 +-
.../ml/environment/logging/NoOpLogger.java | 4 +-
.../apache/ignite/ml/inference/InfModel.java | 39 --
.../org/apache/ignite/ml/inference/Model.java | 37 ++
.../ignite/ml/inference/ModelDescriptor.java | 18 +-
.../inference/builder/AsyncInfModelBuilder.java | 43 ---
.../ml/inference/builder/AsyncModelBuilder.java | 43 +++
.../IgniteDistributedInfModelBuilder.java | 368 -------------------
.../builder/IgniteDistributedModelBuilder.java | 368 +++++++++++++++++++
.../builder/SingleInfModelBuilder.java | 34 --
.../inference/builder/SingleModelBuilder.java | 34 ++
.../inference/builder/SyncInfModelBuilder.java | 42 ---
.../ml/inference/builder/SyncModelBuilder.java | 42 +++
.../builder/ThreadedInfModelBuilder.java | 86 -----
.../inference/builder/ThreadedModelBuilder.java | 86 +++++
.../parser/IgniteFunctionInfModelParser.java | 76 ----
.../ml/inference/parser/IgniteModelParser.java | 49 +++
.../ml/inference/parser/InfModelParser.java | 38 --
.../ignite/ml/inference/parser/ModelParser.java | 38 ++
.../parser/TensorFlowBaseInfModelParser.java | 216 -----------
.../parser/TensorFlowBaseModelParser.java | 216 +++++++++++
.../parser/TensorFlowGraphInfModelParser.java | 40 --
.../parser/TensorFlowGraphModelParser.java | 40 ++
.../TensorFlowSavedModelInfModelParser.java | 70 ----
.../parser/TensorFlowSavedModelModelParser.java | 70 ++++
.../reader/FileSystemInfModelReader.java | 61 ---
.../inference/reader/FileSystemModelReader.java | 61 +++
.../reader/InMemoryInfModelReader.java | 67 ----
.../inference/reader/InMemoryModelReader.java | 67 ++++
.../ml/inference/reader/InfModelReader.java | 33 --
.../ignite/ml/inference/reader/ModelReader.java | 33 ++
.../reader/ModelStorageInfModelReader.java | 64 ----
.../reader/ModelStorageModelReader.java | 64 ++++
.../ignite/ml/knn/NNClassificationModel.java | 4 +-
.../ml/knn/ann/ANNClassificationModel.java | 2 +-
.../classification/KNNClassificationModel.java | 2 +-
.../ml/knn/regression/KNNRegressionModel.java | 2 +-
.../ignite/ml/multiclass/MultiClassModel.java | 8 +-
.../ignite/ml/multiclass/OneVsRestTrainer.java | 4 +-
.../discrete/DiscreteNaiveBayesModel.java | 6 +-
.../gaussian/GaussianNaiveBayesModel.java | 6 +-
.../ignite/ml/nn/MultilayerPerceptron.java | 6 +-
.../ml/optimization/SmoothParametrized.java | 4 +-
.../org/apache/ignite/ml/pipeline/Pipeline.java | 4 +-
.../apache/ignite/ml/pipeline/PipelineMdl.java | 14 +-
.../linear/LinearRegressionModel.java | 6 +-
.../logistic/LogisticRegressionModel.java | 6 +-
.../ignite/ml/selection/cv/CrossValidation.java | 4 +-
.../cursor/CacheBasedLabelPairCursor.java | 10 +-
.../scoring/cursor/LocalLabelPairCursor.java | 8 +-
.../BinaryClassificationEvaluator.java | 26 +-
.../ml/svm/SVMLinearClassificationModel.java | 6 +-
.../ml/trainers/AdaptableDatasetModel.java | 14 +-
.../ml/trainers/AdaptableDatasetTrainer.java | 6 +-
.../ignite/ml/trainers/DatasetTrainer.java | 4 +-
.../ml/trainers/MultiLabelDatasetTrainer.java | 4 +-
.../ml/trainers/SingleLabelDatasetTrainer.java | 4 +-
.../ignite/ml/trainers/TrainerTransformers.java | 14 +-
.../ml/tree/DecisionTreeConditionalNode.java | 6 +-
.../ignite/ml/tree/DecisionTreeLeafNode.java | 2 +-
.../apache/ignite/ml/tree/DecisionTreeNode.java | 4 +-
.../boosting/GDBOnTreesLearningStrategy.java | 10 +-
.../tree/randomforest/RandomForestTrainer.java | 4 +-
.../ml/tree/randomforest/data/TreeNode.java | 10 +-
.../ml/tree/randomforest/data/TreeRoot.java | 8 +-
.../java/org/apache/ignite/ml/TestUtils.java | 4 +-
.../ignite/ml/clustering/KMeansModelTest.java | 8 +-
.../ignite/ml/clustering/KMeansTrainerTest.java | 12 +-
.../org/apache/ignite/ml/common/ModelTest.java | 10 +-
.../ignite/ml/composition/BaggingTest.java | 18 +-
.../ignite/ml/composition/StackingTest.java | 20 +-
.../ml/composition/boosting/GDBTrainerTest.java | 18 +-
.../convergence/ConvergenceCheckerTest.java | 4 +-
.../ml/environment/LearningEnvironmentTest.java | 14 +-
.../ignite/ml/inference/InferenceTestSuite.java | 26 +-
.../IgniteDistributedInfModelBuilderTest.java | 72 ----
.../IgniteDistributedModelBuilderTest.java | 72 ++++
.../builder/InfModelBuilderTestUtil.java | 53 ---
.../inference/builder/ModelBuilderTestUtil.java | 53 +++
.../builder/SingleInfModelBuilderTest.java | 42 ---
.../builder/SingleModelBuilderTest.java | 42 +++
.../builder/ThreadedInfModelBuilderTest.java | 44 ---
.../builder/ThreadedModelBuilderTest.java | 44 +++
.../ignite/ml/knn/KNNClassificationTest.java | 18 +-
.../apache/ignite/ml/knn/KNNRegressionTest.java | 12 +-
.../ml/multiclass/OneVsRestTrainerTest.java | 8 +-
.../discrete/DiscreteNaiveBayesModelTest.java | 2 +-
.../discrete/DiscreteNaiveBayesTest.java | 2 +-
.../gaussian/GaussianNaiveBayesModelTest.java | 2 +-
.../gaussian/GaussianNaiveBayesTest.java | 4 +-
.../gaussian/GaussianNaiveBayesTrainerTest.java | 4 +-
.../java/org/apache/ignite/ml/nn/MLPTest.java | 8 +-
.../ignite/ml/nn/MLPTrainerIntegrationTest.java | 2 +-
.../org/apache/ignite/ml/nn/MLPTrainerTest.java | 6 +-
.../MLPTrainerMnistIntegrationTest.java | 2 +-
.../ml/nn/performance/MLPTrainerMnistTest.java | 2 +-
.../ignite/ml/pipeline/PipelineMdlTest.java | 10 +-
.../apache/ignite/ml/pipeline/PipelineTest.java | 8 +-
.../linear/LinearRegressionModelTest.java | 12 +-
.../logistic/LogisticRegressionModelTest.java | 12 +-
.../LogisticRegressionSGDTrainerTest.java | 12 +-
.../ignite/ml/svm/SVMBinaryTrainerTest.java | 8 +-
.../org/apache/ignite/ml/svm/SVMModelTest.java | 28 +-
.../DecisionTreeMNISTIntegrationTest.java | 2 +-
.../tree/performance/DecisionTreeMNISTTest.java | 2 +-
.../RandomForestClassifierTrainerTest.java | 4 +-
.../RandomForestRegressionTrainerTest.java | 4 +-
.../ml/tree/randomforest/data/TreeNodeTest.java | 4 +-
.../ignite/ml/xgboost/XGModelComposition.java | 8 +-
.../ignite/ml/xgboost/parser/XGModelParser.java | 4 +-
.../xgboost/parser/XGBoostModelParserTest.java | 14 +-
156 files changed, 2069 insertions(+), 2084 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/2dc0d9f7/examples/src/main/java/org/apache/ignite/examples/ml/clustering/KMeansClusterizationExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/ml/clustering/KMeansClusterizationExample.java b/examples/src/main/java/org/apache/ignite/examples/ml/clustering/KMeansClusterizationExample.java
index 44c4256..46550f3 100644
--- a/examples/src/main/java/org/apache/ignite/examples/ml/clustering/KMeansClusterizationExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/ml/clustering/KMeansClusterizationExample.java
@@ -82,7 +82,7 @@ public class KMeansClusterizationExample {
Vector inputs = val.copyOfRange(1, val.size());
double groundTruth = val.get(0);
- double prediction = mdl.apply(inputs);
+ double prediction = mdl.predict(inputs);
System.out.printf(">>> | %.4f\t\t\t| %.4f\t\t|\n", prediction, groundTruth);
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/2dc0d9f7/examples/src/main/java/org/apache/ignite/examples/ml/inference/IgniteFunctionDistributedInferenceExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/ml/inference/IgniteFunctionDistributedInferenceExample.java b/examples/src/main/java/org/apache/ignite/examples/ml/inference/IgniteFunctionDistributedInferenceExample.java
deleted file mode 100644
index 58ddde7..0000000
--- a/examples/src/main/java/org/apache/ignite/examples/ml/inference/IgniteFunctionDistributedInferenceExample.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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 org.apache.ignite.examples.ml.inference;
-
-import java.io.IOException;
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.Future;
-import javax.cache.Cache;
-import org.apache.ignite.Ignite;
-import org.apache.ignite.IgniteCache;
-import org.apache.ignite.Ignition;
-import org.apache.ignite.cache.query.QueryCursor;
-import org.apache.ignite.cache.query.ScanQuery;
-import org.apache.ignite.examples.ml.regression.linear.LinearRegressionLSQRTrainerExample;
-import org.apache.ignite.ml.inference.InfModel;
-import org.apache.ignite.ml.inference.builder.IgniteDistributedInfModelBuilder;
-import org.apache.ignite.ml.inference.parser.IgniteFunctionInfModelParser;
-import org.apache.ignite.ml.inference.parser.InfModelParser;
-import org.apache.ignite.ml.inference.reader.InMemoryInfModelReader;
-import org.apache.ignite.ml.inference.reader.InfModelReader;
-import org.apache.ignite.ml.math.primitives.vector.Vector;
-import org.apache.ignite.ml.regressions.linear.LinearRegressionLSQRTrainer;
-import org.apache.ignite.ml.regressions.linear.LinearRegressionModel;
-import org.apache.ignite.ml.util.MLSandboxDatasets;
-import org.apache.ignite.ml.util.SandboxMLCache;
-
-/**
- * This example is based on {@link LinearRegressionLSQRTrainerExample}, but to perform inference it uses an approach
- * implemented in {@link org.apache.ignite.ml.inference} package.
- */
-public class IgniteFunctionDistributedInferenceExample {
- /** Run example. */
- public static void main(String... args) throws IOException, ExecutionException, InterruptedException {
- System.out.println();
- System.out.println(">>> Linear regression model over cache based dataset usage example started.");
- // Start ignite grid.
- try (Ignite ignite = Ignition.start("examples/config/example-ignite.xml")) {
- System.out.println(">>> Ignite grid started.");
-
- IgniteCache<Integer, Vector> dataCache = new SandboxMLCache(ignite)
- .fillCacheWith(MLSandboxDatasets.MORTALITY_DATA);
-
- System.out.println(">>> Create new linear regression trainer object.");
- LinearRegressionLSQRTrainer trainer = new LinearRegressionLSQRTrainer();
-
- System.out.println(">>> Perform the training to get the model.");
- LinearRegressionModel mdl = trainer.fit(
- ignite,
- dataCache,
- (k, v) -> v.copyOfRange(1, v.size()),
- (k, v) -> v.get(0)
- );
-
- System.out.println(">>> Linear regression model: " + mdl);
-
- System.out.println(">>> Preparing model reader and model parser.");
- InfModelReader reader = new InMemoryInfModelReader(mdl);
- InfModelParser<Vector, Double, ?> parser = new IgniteFunctionInfModelParser<>();
- try (InfModel<Vector, Future<Double>> infMdl = new IgniteDistributedInfModelBuilder(ignite, 4, 4)
- .build(reader, parser)) {
- System.out.println(">>> Inference model is ready.");
-
- System.out.println(">>> ---------------------------------");
- System.out.println(">>> | Prediction\t| Ground Truth\t|");
- System.out.println(">>> ---------------------------------");
-
- try (QueryCursor<Cache.Entry<Integer, Vector>> observations = dataCache.query(new ScanQuery<>())) {
- for (Cache.Entry<Integer, Vector> observation : observations) {
- Vector val = observation.getValue();
- Vector inputs = val.copyOfRange(1, val.size());
- double groundTruth = val.get(0);
-
- double prediction = infMdl.apply(inputs).get();
-
- System.out.printf(">>> | %.4f\t\t| %.4f\t\t|\n", prediction, groundTruth);
- }
- }
- }
-
- System.out.println(">>> ---------------------------------");
-
- System.out.println(">>> Linear regression model over cache based dataset usage example completed.");
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/ignite/blob/2dc0d9f7/examples/src/main/java/org/apache/ignite/examples/ml/inference/IgniteModelDistributedInferenceExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/ml/inference/IgniteModelDistributedInferenceExample.java b/examples/src/main/java/org/apache/ignite/examples/ml/inference/IgniteModelDistributedInferenceExample.java
new file mode 100644
index 0000000..8a43a79
--- /dev/null
+++ b/examples/src/main/java/org/apache/ignite/examples/ml/inference/IgniteModelDistributedInferenceExample.java
@@ -0,0 +1,100 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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 org.apache.ignite.examples.ml.inference;
+
+import java.io.IOException;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.Future;
+import javax.cache.Cache;
+import org.apache.ignite.Ignite;
+import org.apache.ignite.IgniteCache;
+import org.apache.ignite.Ignition;
+import org.apache.ignite.cache.query.QueryCursor;
+import org.apache.ignite.cache.query.ScanQuery;
+import org.apache.ignite.examples.ml.regression.linear.LinearRegressionLSQRTrainerExample;
+import org.apache.ignite.ml.inference.Model;
+import org.apache.ignite.ml.inference.builder.IgniteDistributedModelBuilder;
+import org.apache.ignite.ml.inference.parser.IgniteModelParser;
+import org.apache.ignite.ml.inference.parser.ModelParser;
+import org.apache.ignite.ml.inference.reader.InMemoryModelReader;
+import org.apache.ignite.ml.inference.reader.ModelReader;
+import org.apache.ignite.ml.math.primitives.vector.Vector;
+import org.apache.ignite.ml.regressions.linear.LinearRegressionLSQRTrainer;
+import org.apache.ignite.ml.regressions.linear.LinearRegressionModel;
+import org.apache.ignite.ml.util.MLSandboxDatasets;
+import org.apache.ignite.ml.util.SandboxMLCache;
+
+/**
+ * This example is based on {@link LinearRegressionLSQRTrainerExample}, but to perform inference it uses an approach
+ * implemented in {@link org.apache.ignite.ml.inference} package.
+ */
+public class IgniteModelDistributedInferenceExample {
+ /** Run example. */
+ public static void main(String... args) throws IOException, ExecutionException, InterruptedException {
+ System.out.println();
+ System.out.println(">>> Linear regression model over cache based dataset usage example started.");
+ // Start ignite grid.
+ try (Ignite ignite = Ignition.start("examples/config/example-ignite.xml")) {
+ System.out.println(">>> Ignite grid started.");
+
+ IgniteCache<Integer, Vector> dataCache = new SandboxMLCache(ignite)
+ .fillCacheWith(MLSandboxDatasets.MORTALITY_DATA);
+
+ System.out.println(">>> Create new linear regression trainer object.");
+ LinearRegressionLSQRTrainer trainer = new LinearRegressionLSQRTrainer();
+
+ System.out.println(">>> Perform the training to get the model.");
+ LinearRegressionModel mdl = trainer.fit(
+ ignite,
+ dataCache,
+ (k, v) -> v.copyOfRange(1, v.size()),
+ (k, v) -> v.get(0)
+ );
+
+ System.out.println(">>> Linear regression model: " + mdl);
+
+ System.out.println(">>> Preparing model reader and model parser.");
+ ModelReader reader = new InMemoryModelReader(mdl);
+ ModelParser<Vector, Double, ?> parser = new IgniteModelParser<>();
+ try (Model<Vector, Future<Double>> infMdl = new IgniteDistributedModelBuilder(ignite, 4, 4)
+ .build(reader, parser)) {
+ System.out.println(">>> Inference model is ready.");
+
+ System.out.println(">>> ---------------------------------");
+ System.out.println(">>> | Prediction\t| Ground Truth\t|");
+ System.out.println(">>> ---------------------------------");
+
+ try (QueryCursor<Cache.Entry<Integer, Vector>> observations = dataCache.query(new ScanQuery<>())) {
+ for (Cache.Entry<Integer, Vector> observation : observations) {
+ Vector val = observation.getValue();
+ Vector inputs = val.copyOfRange(1, val.size());
+ double groundTruth = val.get(0);
+
+ double prediction = infMdl.predict(inputs).get();
+
+ System.out.printf(">>> | %.4f\t\t| %.4f\t\t|\n", prediction, groundTruth);
+ }
+ }
+ }
+
+ System.out.println(">>> ---------------------------------");
+
+ System.out.println(">>> Linear regression model over cache based dataset usage example completed.");
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/2dc0d9f7/examples/src/main/java/org/apache/ignite/examples/ml/inference/ModelStorageExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/ml/inference/ModelStorageExample.java b/examples/src/main/java/org/apache/ignite/examples/ml/inference/ModelStorageExample.java
index a32d137..3f1d923 100644
--- a/examples/src/main/java/org/apache/ignite/examples/ml/inference/ModelStorageExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/ml/inference/ModelStorageExample.java
@@ -26,17 +26,17 @@ import java.io.Serializable;
import org.apache.ignite.Ignite;
import org.apache.ignite.Ignition;
import org.apache.ignite.lang.IgniteBiTuple;
-import org.apache.ignite.ml.inference.InfModel;
+import org.apache.ignite.ml.IgniteModel;
+import org.apache.ignite.ml.inference.Model;
import org.apache.ignite.ml.inference.ModelDescriptor;
import org.apache.ignite.ml.inference.ModelSignature;
-import org.apache.ignite.ml.inference.builder.SingleInfModelBuilder;
-import org.apache.ignite.ml.inference.parser.IgniteFunctionInfModelParser;
-import org.apache.ignite.ml.inference.reader.ModelStorageInfModelReader;
+import org.apache.ignite.ml.inference.builder.SingleModelBuilder;
+import org.apache.ignite.ml.inference.parser.IgniteModelParser;
+import org.apache.ignite.ml.inference.reader.ModelStorageModelReader;
import org.apache.ignite.ml.inference.storage.descriptor.ModelDescriptorStorage;
import org.apache.ignite.ml.inference.storage.descriptor.ModelDescriptorStorageFactory;
import org.apache.ignite.ml.inference.storage.model.ModelStorage;
import org.apache.ignite.ml.inference.storage.model.ModelStorageFactory;
-import org.apache.ignite.ml.math.functions.IgniteFunction;
/**
* This example demonstrates how to work with {@link ModelStorage}.
@@ -51,7 +51,7 @@ public class ModelStorageExample {
ModelDescriptorStorage descStorage = new ModelDescriptorStorageFactory().getModelDescriptorStorage(ignite);
System.out.println("Saving model into model storage...");
- byte[] mdl = serialize((IgniteFunction<byte[], byte[]>)i -> i);
+ byte[] mdl = serialize((IgniteModel<byte[], byte[]>)i -> i);
storage.mkdirs("/");
storage.putFile("/my_model", mdl);
@@ -60,8 +60,8 @@ public class ModelStorageExample {
"MyModel",
"My Cool Model",
new ModelSignature("", "", ""),
- new ModelStorageInfModelReader("/my_model"),
- new IgniteFunctionInfModelParser<>()
+ new ModelStorageModelReader("/my_model"),
+ new IgniteModelParser<>()
);
descStorage.put("my_model", desc);
@@ -73,12 +73,12 @@ public class ModelStorageExample {
desc = descStorage.get("my_model");
System.out.println("Build inference model...");
- SingleInfModelBuilder mdlBuilder = new SingleInfModelBuilder();
- try (InfModel<byte[], byte[]> infMdl = mdlBuilder.build(desc.getReader(), desc.getParser())) {
+ SingleModelBuilder mdlBuilder = new SingleModelBuilder();
+ try (Model<byte[], byte[]> infMdl = mdlBuilder.build(desc.getReader(), desc.getParser())) {
System.out.println("Make inference...");
for (int i = 0; i < 10; i++) {
- Integer res = deserialize(infMdl.apply(serialize(i)));
+ Integer res = deserialize(infMdl.predict(serialize(i)));
System.out.println(i + " -> " + res);
}
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/2dc0d9f7/examples/src/main/java/org/apache/ignite/examples/ml/inference/TensorFlowDistributedInferenceExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/ml/inference/TensorFlowDistributedInferenceExample.java b/examples/src/main/java/org/apache/ignite/examples/ml/inference/TensorFlowDistributedInferenceExample.java
index a1e3b21..a81da7f 100644
--- a/examples/src/main/java/org/apache/ignite/examples/ml/inference/TensorFlowDistributedInferenceExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/ml/inference/TensorFlowDistributedInferenceExample.java
@@ -29,12 +29,12 @@ import java.util.concurrent.Future;
import org.apache.ignite.Ignite;
import org.apache.ignite.Ignition;
import org.apache.ignite.internal.util.IgniteUtils;
-import org.apache.ignite.ml.inference.InfModel;
-import org.apache.ignite.ml.inference.builder.IgniteDistributedInfModelBuilder;
-import org.apache.ignite.ml.inference.parser.InfModelParser;
-import org.apache.ignite.ml.inference.parser.TensorFlowSavedModelInfModelParser;
-import org.apache.ignite.ml.inference.reader.FileSystemInfModelReader;
-import org.apache.ignite.ml.inference.reader.InfModelReader;
+import org.apache.ignite.ml.inference.Model;
+import org.apache.ignite.ml.inference.builder.IgniteDistributedModelBuilder;
+import org.apache.ignite.ml.inference.parser.ModelParser;
+import org.apache.ignite.ml.inference.parser.TensorFlowSavedModelModelParser;
+import org.apache.ignite.ml.inference.reader.FileSystemModelReader;
+import org.apache.ignite.ml.inference.reader.ModelReader;
import org.apache.ignite.ml.util.MnistUtils;
import org.tensorflow.Tensor;
@@ -59,9 +59,9 @@ public class TensorFlowDistributedInferenceExample {
if (mdlRsrc == null)
throw new IllegalArgumentException("Resource not found [resource_path=" + MODEL_PATH + "]");
- InfModelReader reader = new FileSystemInfModelReader(mdlRsrc.getPath());
+ ModelReader reader = new FileSystemModelReader(mdlRsrc.getPath());
- InfModelParser<double[], Long, ?> parser = new TensorFlowSavedModelInfModelParser<double[], Long>("serve")
+ ModelParser<double[], Long, ?> parser = new TensorFlowSavedModelModelParser<double[], Long>("serve")
.withInput("Placeholder", doubles -> {
float[][][] reshaped = new float[1][28][28];
@@ -82,11 +82,11 @@ public class TensorFlowDistributedInferenceExample {
long t0 = System.currentTimeMillis();
- try (InfModel<double[], Future<Long>> threadedMdl = new IgniteDistributedInfModelBuilder(ignite, 4, 4)
+ try (Model<double[], Future<Long>> threadedMdl = new IgniteDistributedModelBuilder(ignite, 4, 4)
.build(reader, parser)) {
List<Future<?>> futures = new ArrayList<>(images.size());
for (MnistUtils.MnistLabeledImage image : images)
- futures.add(threadedMdl.apply(image.getPixels()));
+ futures.add(threadedMdl.predict(image.getPixels()));
for (Future<?> f : futures)
f.get();
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/2dc0d9f7/examples/src/main/java/org/apache/ignite/examples/ml/inference/TensorFlowLocalInferenceExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/ml/inference/TensorFlowLocalInferenceExample.java b/examples/src/main/java/org/apache/ignite/examples/ml/inference/TensorFlowLocalInferenceExample.java
index d5ccbd7..baa1f00 100644
--- a/examples/src/main/java/org/apache/ignite/examples/ml/inference/TensorFlowLocalInferenceExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/ml/inference/TensorFlowLocalInferenceExample.java
@@ -24,12 +24,12 @@ import java.util.List;
import java.util.Objects;
import java.util.Random;
import org.apache.ignite.internal.util.IgniteUtils;
-import org.apache.ignite.ml.inference.InfModel;
-import org.apache.ignite.ml.inference.builder.SingleInfModelBuilder;
-import org.apache.ignite.ml.inference.parser.InfModelParser;
-import org.apache.ignite.ml.inference.parser.TensorFlowSavedModelInfModelParser;
-import org.apache.ignite.ml.inference.reader.FileSystemInfModelReader;
-import org.apache.ignite.ml.inference.reader.InfModelReader;
+import org.apache.ignite.ml.inference.Model;
+import org.apache.ignite.ml.inference.builder.SingleModelBuilder;
+import org.apache.ignite.ml.inference.parser.ModelParser;
+import org.apache.ignite.ml.inference.parser.TensorFlowSavedModelModelParser;
+import org.apache.ignite.ml.inference.reader.FileSystemModelReader;
+import org.apache.ignite.ml.inference.reader.ModelReader;
import org.apache.ignite.ml.util.MnistUtils;
import org.tensorflow.Tensor;
@@ -52,9 +52,9 @@ public class TensorFlowLocalInferenceExample {
if (mdlRsrc == null)
throw new IllegalArgumentException("Resource not found [resource_path=" + MODEL_PATH + "]");
- InfModelReader reader = new FileSystemInfModelReader(mdlRsrc.getPath());
+ ModelReader reader = new FileSystemModelReader(mdlRsrc.getPath());
- InfModelParser<double[], Long, ?> parser = new TensorFlowSavedModelInfModelParser<double[], Long>("serve")
+ ModelParser<double[], Long, ?> parser = new TensorFlowSavedModelModelParser<double[], Long>("serve")
.withInput("Placeholder", doubles -> {
float[][][] reshaped = new float[1][28][28];
for (int i = 0; i < doubles.length; i++)
@@ -73,9 +73,9 @@ public class TensorFlowLocalInferenceExample {
long t0 = System.currentTimeMillis();
- try (InfModel<double[], Long> locMdl = new SingleInfModelBuilder().build(reader, parser)) {
+ try (Model<double[], Long> locMdl = new SingleModelBuilder().build(reader, parser)) {
for (MnistUtils.MnistLabeledImage image : images)
- locMdl.apply(image.getPixels());
+ locMdl.predict(image.getPixels());
}
long t1 = System.currentTimeMillis();
http://git-wip-us.apache.org/repos/asf/ignite/blob/2dc0d9f7/examples/src/main/java/org/apache/ignite/examples/ml/inference/TensorFlowThreadedInferenceExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/ml/inference/TensorFlowThreadedInferenceExample.java b/examples/src/main/java/org/apache/ignite/examples/ml/inference/TensorFlowThreadedInferenceExample.java
index 14051f4..900dcd4 100644
--- a/examples/src/main/java/org/apache/ignite/examples/ml/inference/TensorFlowThreadedInferenceExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/ml/inference/TensorFlowThreadedInferenceExample.java
@@ -27,12 +27,12 @@ import java.util.Random;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future;
import org.apache.ignite.internal.util.IgniteUtils;
-import org.apache.ignite.ml.inference.InfModel;
-import org.apache.ignite.ml.inference.builder.ThreadedInfModelBuilder;
-import org.apache.ignite.ml.inference.parser.InfModelParser;
-import org.apache.ignite.ml.inference.parser.TensorFlowSavedModelInfModelParser;
-import org.apache.ignite.ml.inference.reader.FileSystemInfModelReader;
-import org.apache.ignite.ml.inference.reader.InfModelReader;
+import org.apache.ignite.ml.inference.Model;
+import org.apache.ignite.ml.inference.builder.ThreadedModelBuilder;
+import org.apache.ignite.ml.inference.parser.ModelParser;
+import org.apache.ignite.ml.inference.parser.TensorFlowSavedModelModelParser;
+import org.apache.ignite.ml.inference.reader.FileSystemModelReader;
+import org.apache.ignite.ml.inference.reader.ModelReader;
import org.apache.ignite.ml.util.MnistUtils;
import org.tensorflow.Tensor;
@@ -56,9 +56,9 @@ public class TensorFlowThreadedInferenceExample {
if (mdlRsrc == null)
throw new IllegalArgumentException("Resource not found [resource_path=" + MODEL_PATH + "]");
- InfModelReader reader = new FileSystemInfModelReader(mdlRsrc.getPath());
+ ModelReader reader = new FileSystemModelReader(mdlRsrc.getPath());
- InfModelParser<double[], Long, ?> parser = new TensorFlowSavedModelInfModelParser<double[], Long>("serve")
+ ModelParser<double[], Long, ?> parser = new TensorFlowSavedModelModelParser<double[], Long>("serve")
.withInput("Placeholder", doubles -> {
float[][][] reshaped = new float[1][28][28];
@@ -79,11 +79,11 @@ public class TensorFlowThreadedInferenceExample {
long t0 = System.currentTimeMillis();
- try (InfModel<double[], Future<Long>> threadedMdl = new ThreadedInfModelBuilder(8)
+ try (Model<double[], Future<Long>> threadedMdl = new ThreadedModelBuilder(8)
.build(reader, parser)) {
List<Future<?>> futures = new ArrayList<>(images.size());
for (MnistUtils.MnistLabeledImage image : images)
- futures.add(threadedMdl.apply(image.getPixels()));
+ futures.add(threadedMdl.predict(image.getPixels()));
for (Future<?> f : futures)
f.get();
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/2dc0d9f7/examples/src/main/java/org/apache/ignite/examples/ml/knn/ANNClassificationExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/ml/knn/ANNClassificationExample.java b/examples/src/main/java/org/apache/ignite/examples/ml/knn/ANNClassificationExample.java
index 2e74f60..71546e9 100644
--- a/examples/src/main/java/org/apache/ignite/examples/ml/knn/ANNClassificationExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/ml/knn/ANNClassificationExample.java
@@ -97,7 +97,7 @@ public class ANNClassificationExample {
double groundTruth = val[0];
long startPredictionTime = System.currentTimeMillis();
- double prediction = knnMdl.apply(new DenseVector(inputs));
+ double prediction = knnMdl.predict(new DenseVector(inputs));
long endPredictionTime = System.currentTimeMillis();
totalPredictionTime += (endPredictionTime - startPredictionTime);
http://git-wip-us.apache.org/repos/asf/ignite/blob/2dc0d9f7/examples/src/main/java/org/apache/ignite/examples/ml/knn/KNNClassificationExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/ml/knn/KNNClassificationExample.java b/examples/src/main/java/org/apache/ignite/examples/ml/knn/KNNClassificationExample.java
index 460752b..4a475a0 100644
--- a/examples/src/main/java/org/apache/ignite/examples/ml/knn/KNNClassificationExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/ml/knn/KNNClassificationExample.java
@@ -83,7 +83,7 @@ public class KNNClassificationExample {
Vector inputs = val.copyOfRange(1, val.size());
double groundTruth = val.get(0);
- double prediction = knnMdl.apply(inputs);
+ double prediction = knnMdl.predict(inputs);
totalAmount++;
if (!Precision.equals(groundTruth, prediction, Precision.EPSILON))
http://git-wip-us.apache.org/repos/asf/ignite/blob/2dc0d9f7/examples/src/main/java/org/apache/ignite/examples/ml/knn/KNNRegressionExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/ml/knn/KNNRegressionExample.java b/examples/src/main/java/org/apache/ignite/examples/ml/knn/KNNRegressionExample.java
index 51cc4ed..8615b6c 100644
--- a/examples/src/main/java/org/apache/ignite/examples/ml/knn/KNNRegressionExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/ml/knn/KNNRegressionExample.java
@@ -86,7 +86,7 @@ public class KNNRegressionExample {
Vector inputs = val.copyOfRange(1, val.size());
double groundTruth = val.get(0);
- double prediction = knnMdl.apply(inputs);
+ double prediction = knnMdl.predict(inputs);
mse += Math.pow(prediction - groundTruth, 2.0);
mae += Math.abs(prediction - groundTruth);
http://git-wip-us.apache.org/repos/asf/ignite/blob/2dc0d9f7/examples/src/main/java/org/apache/ignite/examples/ml/multiclass/OneVsRestClassificationExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/ml/multiclass/OneVsRestClassificationExample.java b/examples/src/main/java/org/apache/ignite/examples/ml/multiclass/OneVsRestClassificationExample.java
index 1f81c48..080f45d 100644
--- a/examples/src/main/java/org/apache/ignite/examples/ml/multiclass/OneVsRestClassificationExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/ml/multiclass/OneVsRestClassificationExample.java
@@ -120,8 +120,8 @@ public class OneVsRestClassificationExample {
Vector inputs = val.copyOfRange(1, val.size());
double groundTruth = val.get(0);
- double prediction = mdl.apply(inputs);
- double predictionWithMinMaxScaling = mdlWithScaling.apply(inputs);
+ double prediction = mdl.predict(inputs);
+ double predictionWithMinMaxScaling = mdlWithScaling.predict(inputs);
totalAmount++;
http://git-wip-us.apache.org/repos/asf/ignite/blob/2dc0d9f7/examples/src/main/java/org/apache/ignite/examples/ml/naivebayes/DiscreteNaiveBayesTrainerExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/ml/naivebayes/DiscreteNaiveBayesTrainerExample.java b/examples/src/main/java/org/apache/ignite/examples/ml/naivebayes/DiscreteNaiveBayesTrainerExample.java
index 5af3f69..54c9ce0 100644
--- a/examples/src/main/java/org/apache/ignite/examples/ml/naivebayes/DiscreteNaiveBayesTrainerExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/ml/naivebayes/DiscreteNaiveBayesTrainerExample.java
@@ -85,7 +85,7 @@ public class DiscreteNaiveBayesTrainerExample {
Vector inputs = val.copyOfRange(1, val.size());
double groundTruth = val.get(0);
- double prediction = mdl.apply(inputs);
+ double prediction = mdl.predict(inputs);
totalAmount++;
if (groundTruth != prediction)
http://git-wip-us.apache.org/repos/asf/ignite/blob/2dc0d9f7/examples/src/main/java/org/apache/ignite/examples/ml/naivebayes/GaussianNaiveBayesTrainerExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/ml/naivebayes/GaussianNaiveBayesTrainerExample.java b/examples/src/main/java/org/apache/ignite/examples/ml/naivebayes/GaussianNaiveBayesTrainerExample.java
index e711d84..74e0bfd 100644
--- a/examples/src/main/java/org/apache/ignite/examples/ml/naivebayes/GaussianNaiveBayesTrainerExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/ml/naivebayes/GaussianNaiveBayesTrainerExample.java
@@ -84,7 +84,7 @@ public class GaussianNaiveBayesTrainerExample {
Vector inputs = val.copyOfRange(1, val.size());
double groundTruth = val.get(0);
- double prediction = mdl.apply(inputs);
+ double prediction = mdl.predict(inputs);
totalAmount++;
if (!Precision.equals(groundTruth, prediction, Precision.EPSILON))
http://git-wip-us.apache.org/repos/asf/ignite/blob/2dc0d9f7/examples/src/main/java/org/apache/ignite/examples/ml/nn/MLPTrainerExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/ml/nn/MLPTrainerExample.java b/examples/src/main/java/org/apache/ignite/examples/ml/nn/MLPTrainerExample.java
index dc67aa1..a6f177a 100644
--- a/examples/src/main/java/org/apache/ignite/examples/ml/nn/MLPTrainerExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/ml/nn/MLPTrainerExample.java
@@ -116,7 +116,7 @@ public class MLPTrainerExample {
// Calculate score.
for (int i = 0; i < 4; i++) {
LabeledPoint pnt = trainingSet.get(i);
- Matrix predicted = mlp.apply(new DenseMatrix(new double[][] {{pnt.x, pnt.y}}));
+ Matrix predicted = mlp.predict(new DenseMatrix(new double[][] {{pnt.x, pnt.y}}));
double predictedVal = predicted.get(0, 0);
double lbl = pnt.lb;
http://git-wip-us.apache.org/repos/asf/ignite/blob/2dc0d9f7/examples/src/main/java/org/apache/ignite/examples/ml/regression/linear/LinearRegressionLSQRTrainerExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/ml/regression/linear/LinearRegressionLSQRTrainerExample.java b/examples/src/main/java/org/apache/ignite/examples/ml/regression/linear/LinearRegressionLSQRTrainerExample.java
index e6e2632..1bb4146 100644
--- a/examples/src/main/java/org/apache/ignite/examples/ml/regression/linear/LinearRegressionLSQRTrainerExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/ml/regression/linear/LinearRegressionLSQRTrainerExample.java
@@ -78,7 +78,7 @@ public class LinearRegressionLSQRTrainerExample {
Vector inputs = val.copyOfRange(1, val.size());
double groundTruth = val.get(0);
- double prediction = mdl.apply(inputs);
+ double prediction = mdl.predict(inputs);
System.out.printf(">>> | %.4f\t\t| %.4f\t\t|\n", prediction, groundTruth);
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/2dc0d9f7/examples/src/main/java/org/apache/ignite/examples/ml/regression/linear/LinearRegressionLSQRTrainerWithMinMaxScalerExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/ml/regression/linear/LinearRegressionLSQRTrainerWithMinMaxScalerExample.java b/examples/src/main/java/org/apache/ignite/examples/ml/regression/linear/LinearRegressionLSQRTrainerWithMinMaxScalerExample.java
index c60f8fb..c00a3bb 100644
--- a/examples/src/main/java/org/apache/ignite/examples/ml/regression/linear/LinearRegressionLSQRTrainerWithMinMaxScalerExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/ml/regression/linear/LinearRegressionLSQRTrainerWithMinMaxScalerExample.java
@@ -89,7 +89,7 @@ public class LinearRegressionLSQRTrainerWithMinMaxScalerExample {
Vector val = observation.getValue();
double groundTruth = val.get(0);
- double prediction = mdl.apply(preprocessor.apply(key, val));
+ double prediction = mdl.predict(preprocessor.apply(key, val));
System.out.printf(">>> | %.4f\t\t| %.4f\t\t|\n", prediction, groundTruth);
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/2dc0d9f7/examples/src/main/java/org/apache/ignite/examples/ml/regression/linear/LinearRegressionSGDTrainerExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/ml/regression/linear/LinearRegressionSGDTrainerExample.java b/examples/src/main/java/org/apache/ignite/examples/ml/regression/linear/LinearRegressionSGDTrainerExample.java
index bf235e2..cb764c5 100644
--- a/examples/src/main/java/org/apache/ignite/examples/ml/regression/linear/LinearRegressionSGDTrainerExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/ml/regression/linear/LinearRegressionSGDTrainerExample.java
@@ -87,7 +87,7 @@ public class LinearRegressionSGDTrainerExample {
Vector inputs = val.copyOfRange(1, val.size());
double groundTruth = val.get(0);
- double prediction = mdl.apply(inputs);
+ double prediction = mdl.predict(inputs);
System.out.printf(">>> | %.4f\t\t| %.4f\t\t|\n", prediction, groundTruth);
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/2dc0d9f7/examples/src/main/java/org/apache/ignite/examples/ml/regression/logistic/binary/LogisticRegressionSGDTrainerExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/ml/regression/logistic/binary/LogisticRegressionSGDTrainerExample.java b/examples/src/main/java/org/apache/ignite/examples/ml/regression/logistic/binary/LogisticRegressionSGDTrainerExample.java
index 65cf4d1..059f810 100644
--- a/examples/src/main/java/org/apache/ignite/examples/ml/regression/logistic/binary/LogisticRegressionSGDTrainerExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/ml/regression/logistic/binary/LogisticRegressionSGDTrainerExample.java
@@ -96,7 +96,7 @@ public class LogisticRegressionSGDTrainerExample {
Vector inputs = val.copyOfRange(1, val.size());
double groundTruth = val.get(0);
- double prediction = mdl.apply(inputs);
+ double prediction = mdl.predict(inputs);
totalAmount++;
if (!Precision.equals(groundTruth, prediction, Precision.EPSILON))
http://git-wip-us.apache.org/repos/asf/ignite/blob/2dc0d9f7/examples/src/main/java/org/apache/ignite/examples/ml/selection/split/TrainTestDatasetSplitterExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/ml/selection/split/TrainTestDatasetSplitterExample.java b/examples/src/main/java/org/apache/ignite/examples/ml/selection/split/TrainTestDatasetSplitterExample.java
index 0a681ce..c9a7ae4 100644
--- a/examples/src/main/java/org/apache/ignite/examples/ml/selection/split/TrainTestDatasetSplitterExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/ml/selection/split/TrainTestDatasetSplitterExample.java
@@ -89,7 +89,7 @@ public class TrainTestDatasetSplitterExample {
Vector inputs = val.copyOfRange(1, val.size());
double groundTruth = val.get(0);
- double prediction = mdl.apply(inputs);
+ double prediction = mdl.predict(inputs);
System.out.printf(">>> | %.4f\t\t| %.4f\t\t|\n", prediction, groundTruth);
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/2dc0d9f7/examples/src/main/java/org/apache/ignite/examples/ml/svm/SVMBinaryClassificationExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/ml/svm/SVMBinaryClassificationExample.java b/examples/src/main/java/org/apache/ignite/examples/ml/svm/SVMBinaryClassificationExample.java
index a32ec08..f057386 100644
--- a/examples/src/main/java/org/apache/ignite/examples/ml/svm/SVMBinaryClassificationExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/ml/svm/SVMBinaryClassificationExample.java
@@ -85,7 +85,7 @@ public class SVMBinaryClassificationExample {
Vector inputs = val.copyOfRange(1, val.size());
double groundTruth = val.get(0);
- double prediction = mdl.apply(inputs);
+ double prediction = mdl.predict(inputs);
totalAmount++;
if (!Precision.equals(groundTruth, prediction, Precision.EPSILON))
http://git-wip-us.apache.org/repos/asf/ignite/blob/2dc0d9f7/examples/src/main/java/org/apache/ignite/examples/ml/tree/DecisionTreeClassificationTrainerExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/ml/tree/DecisionTreeClassificationTrainerExample.java b/examples/src/main/java/org/apache/ignite/examples/ml/tree/DecisionTreeClassificationTrainerExample.java
index 4b44c7f..606660f 100644
--- a/examples/src/main/java/org/apache/ignite/examples/ml/tree/DecisionTreeClassificationTrainerExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/ml/tree/DecisionTreeClassificationTrainerExample.java
@@ -84,7 +84,7 @@ public class DecisionTreeClassificationTrainerExample {
for (int i = 0; i < 1000; i++) {
LabeledPoint pnt = generatePoint(rnd);
- double prediction = mdl.apply(VectorUtils.of(pnt.x, pnt.y));
+ double prediction = mdl.predict(VectorUtils.of(pnt.x, pnt.y));
double lbl = pnt.lb;
if (i %50 == 1)
http://git-wip-us.apache.org/repos/asf/ignite/blob/2dc0d9f7/examples/src/main/java/org/apache/ignite/examples/ml/tree/DecisionTreeRegressionTrainerExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/ml/tree/DecisionTreeRegressionTrainerExample.java b/examples/src/main/java/org/apache/ignite/examples/ml/tree/DecisionTreeRegressionTrainerExample.java
index 2338522..3e37646 100644
--- a/examples/src/main/java/org/apache/ignite/examples/ml/tree/DecisionTreeRegressionTrainerExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/ml/tree/DecisionTreeRegressionTrainerExample.java
@@ -81,7 +81,7 @@ public class DecisionTreeRegressionTrainerExample {
// Calculate score.
for (int x = 0; x < 10; x++) {
- double predicted = mdl.apply(VectorUtils.of(x));
+ double predicted = mdl.predict(VectorUtils.of(x));
System.out.printf(">>> | %.4f\t\t| %.4f\t\t|\n", predicted, Math.sin(x));
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/2dc0d9f7/examples/src/main/java/org/apache/ignite/examples/ml/tree/boosting/GDBOnTreesClassificationTrainerExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/ml/tree/boosting/GDBOnTreesClassificationTrainerExample.java b/examples/src/main/java/org/apache/ignite/examples/ml/tree/boosting/GDBOnTreesClassificationTrainerExample.java
index c478407..fd46556 100644
--- a/examples/src/main/java/org/apache/ignite/examples/ml/tree/boosting/GDBOnTreesClassificationTrainerExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/ml/tree/boosting/GDBOnTreesClassificationTrainerExample.java
@@ -71,7 +71,7 @@ public class GDBOnTreesClassificationTrainerExample {
// Calculate score.
for (int x = -5; x < 5; x++) {
- double predicted = mdl.apply(VectorUtils.of(x));
+ double predicted = mdl.predict(VectorUtils.of(x));
System.out.printf(">>> | %.4f\t\t| %.4f\t\t|\n", predicted, Math.sin(x) < 0 ? 0.0 : 1.0);
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/2dc0d9f7/examples/src/main/java/org/apache/ignite/examples/ml/tree/boosting/GDBOnTreesRegressionTrainerExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/ml/tree/boosting/GDBOnTreesRegressionTrainerExample.java b/examples/src/main/java/org/apache/ignite/examples/ml/tree/boosting/GDBOnTreesRegressionTrainerExample.java
index c119c9a..d04415a 100644
--- a/examples/src/main/java/org/apache/ignite/examples/ml/tree/boosting/GDBOnTreesRegressionTrainerExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/ml/tree/boosting/GDBOnTreesRegressionTrainerExample.java
@@ -22,9 +22,9 @@ import org.apache.ignite.IgniteCache;
import org.apache.ignite.Ignition;
import org.apache.ignite.cache.affinity.rendezvous.RendezvousAffinityFunction;
import org.apache.ignite.configuration.CacheConfiguration;
-import org.apache.ignite.ml.Model;
import org.apache.ignite.ml.composition.ModelsComposition;
import org.apache.ignite.ml.composition.boosting.convergence.mean.MeanAbsValueConvergenceCheckerFactory;
+import org.apache.ignite.ml.inference.Model;
import org.apache.ignite.ml.math.primitives.vector.Vector;
import org.apache.ignite.ml.math.primitives.vector.VectorUtils;
import org.apache.ignite.ml.trainers.DatasetTrainer;
@@ -73,7 +73,7 @@ public class GDBOnTreesRegressionTrainerExample {
// Calculate score.
for (int x = -5; x < 5; x++) {
- double predicted = mdl.apply(VectorUtils.of(x));
+ double predicted = mdl.predict(VectorUtils.of(x));
System.out.printf(">>> | %.4f\t\t| %.4f\t\t|\n", predicted, Math.pow(x, 2));
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/2dc0d9f7/examples/src/main/java/org/apache/ignite/examples/ml/tree/randomforest/RandomForestClassificationExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/ml/tree/randomforest/RandomForestClassificationExample.java b/examples/src/main/java/org/apache/ignite/examples/ml/tree/randomforest/RandomForestClassificationExample.java
index 3ce833d..fd95033 100644
--- a/examples/src/main/java/org/apache/ignite/examples/ml/tree/randomforest/RandomForestClassificationExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/ml/tree/randomforest/RandomForestClassificationExample.java
@@ -95,7 +95,7 @@ public class RandomForestClassificationExample {
Vector inputs = val.copyOfRange(1, val.size());
double groundTruth = val.get(0);
- double prediction = randomForestMdl.apply(inputs);
+ double prediction = randomForestMdl.predict(inputs);
totalAmount++;
if (!Precision.equals(groundTruth, prediction, Precision.EPSILON))
http://git-wip-us.apache.org/repos/asf/ignite/blob/2dc0d9f7/examples/src/main/java/org/apache/ignite/examples/ml/tree/randomforest/RandomForestRegressionExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/ml/tree/randomforest/RandomForestRegressionExample.java b/examples/src/main/java/org/apache/ignite/examples/ml/tree/randomforest/RandomForestRegressionExample.java
index 1754b7c..e1bbc8b 100644
--- a/examples/src/main/java/org/apache/ignite/examples/ml/tree/randomforest/RandomForestRegressionExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/ml/tree/randomforest/RandomForestRegressionExample.java
@@ -104,7 +104,7 @@ public class RandomForestRegressionExample {
Vector inputs = val.copyOfRange(1, val.size());
double groundTruth = val.get(0);
- double prediction = randomForestMdl.apply(inputs);
+ double prediction = randomForestMdl.predict(inputs);
mse += Math.pow(prediction - groundTruth, 2.0);
mae += Math.abs(prediction - groundTruth);
http://git-wip-us.apache.org/repos/asf/ignite/blob/2dc0d9f7/examples/src/main/java/org/apache/ignite/examples/ml/xgboost/XGBoostModelParserExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/ml/xgboost/XGBoostModelParserExample.java b/examples/src/main/java/org/apache/ignite/examples/ml/xgboost/XGBoostModelParserExample.java
index 68f27c4..0ec05c5 100644
--- a/examples/src/main/java/org/apache/ignite/examples/ml/xgboost/XGBoostModelParserExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/ml/xgboost/XGBoostModelParserExample.java
@@ -26,11 +26,11 @@ import java.util.concurrent.Future;
import org.apache.ignite.Ignite;
import org.apache.ignite.Ignition;
import org.apache.ignite.internal.util.IgniteUtils;
-import org.apache.ignite.ml.inference.InfModel;
-import org.apache.ignite.ml.inference.builder.AsyncInfModelBuilder;
-import org.apache.ignite.ml.inference.builder.IgniteDistributedInfModelBuilder;
-import org.apache.ignite.ml.inference.reader.FileSystemInfModelReader;
-import org.apache.ignite.ml.inference.reader.InfModelReader;
+import org.apache.ignite.ml.inference.Model;
+import org.apache.ignite.ml.inference.builder.AsyncModelBuilder;
+import org.apache.ignite.ml.inference.builder.IgniteDistributedModelBuilder;
+import org.apache.ignite.ml.inference.reader.FileSystemModelReader;
+import org.apache.ignite.ml.inference.reader.ModelReader;
import org.apache.ignite.ml.xgboost.parser.XGModelParser;
/**
@@ -57,9 +57,9 @@ public class XGBoostModelParserExample {
if (mdlRsrc == null)
throw new IllegalArgumentException("File not found [resource_path=" + TEST_MODEL_RES + "]");
- InfModelReader reader = new FileSystemInfModelReader(mdlRsrc.getPath());
+ ModelReader reader = new FileSystemModelReader(mdlRsrc.getPath());
- AsyncInfModelBuilder mdlBuilder = new IgniteDistributedInfModelBuilder(ignite, 4, 4);
+ AsyncModelBuilder mdlBuilder = new IgniteDistributedModelBuilder(ignite, 4, 4);
File testData = IgniteUtils.resolveIgnitePath(TEST_DATA_RES);
if (testData == null)
@@ -69,7 +69,7 @@ public class XGBoostModelParserExample {
if (testExpRes == null)
throw new IllegalArgumentException("File not found [resource_path=" + TEST_ER_RES + "]");
- try (InfModel<HashMap<String, Double>, Future<Double>> mdl = mdlBuilder.build(reader, parser);
+ try (Model<HashMap<String, Double>, Future<Double>> mdl = mdlBuilder.build(reader, parser);
Scanner testDataScanner = new Scanner(testData);
Scanner testExpResultsScanner = new Scanner(testExpRes)) {
@@ -86,7 +86,7 @@ public class XGBoostModelParserExample {
testObj.put("f" + keyVal[0], Double.parseDouble(keyVal[1]));
}
- double prediction = mdl.apply(testObj).get();
+ double prediction = mdl.predict(testObj).get();
double expPrediction = Double.parseDouble(testExpResultsStr);
http://git-wip-us.apache.org/repos/asf/ignite/blob/2dc0d9f7/modules/ml/src/main/java/org/apache/ignite/ml/Exportable.java
----------------------------------------------------------------------
diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/Exportable.java b/modules/ml/src/main/java/org/apache/ignite/ml/Exportable.java
index 83b3578..47ea72b 100644
--- a/modules/ml/src/main/java/org/apache/ignite/ml/Exportable.java
+++ b/modules/ml/src/main/java/org/apache/ignite/ml/Exportable.java
@@ -18,7 +18,7 @@
package org.apache.ignite.ml;
/**
- * Interface for exportable models({@link Model}).
+ * Interface for exportable models({@link IgniteModel}).
*
* @see Exporter
*/
http://git-wip-us.apache.org/repos/asf/ignite/blob/2dc0d9f7/modules/ml/src/main/java/org/apache/ignite/ml/IgniteModel.java
----------------------------------------------------------------------
diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/IgniteModel.java b/modules/ml/src/main/java/org/apache/ignite/ml/IgniteModel.java
new file mode 100644
index 0000000..a1165e1
--- /dev/null
+++ b/modules/ml/src/main/java/org/apache/ignite/ml/IgniteModel.java
@@ -0,0 +1,59 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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 org.apache.ignite.ml;
+
+import java.io.Serializable;
+import java.util.function.BiFunction;
+import org.apache.ignite.ml.inference.Model;
+
+/** Basic interface for all models. */
+public interface IgniteModel<T, V> extends Model<T, V>, Serializable {
+ /**
+ * Combines this model with other model via specified combiner
+ *
+ * @param other Other model.
+ * @param combiner Combiner.
+ * @return Combination of models.
+ */
+ public default <X, W> IgniteModel<T, X> combine(IgniteModel<T, W> other, BiFunction<V, W, X> combiner) {
+ return v -> combiner.apply(predict(v), other.predict(v));
+ }
+
+ /**
+ * Get a composition model of the form {@code x -> after(mdl(x))}.
+ *
+ * @param after Function to apply after this model.
+ * @param <V1> Type of input of function applied before this model.
+ * @return Composition model of the form {@code x -> after(mdl(x))}.
+ */
+ public default <V1> IgniteModel<T, V1> andThen(IgniteModel<V, V1> after) {
+ return t -> after.predict(predict(t));
+ }
+
+ /**
+ * @param pretty Use pretty mode.
+ */
+ public default String toString(boolean pretty) {
+ return getClass().getSimpleName();
+ }
+
+ /** {@inheritDoc} */
+ @Override public default void close() {
+ // Do nothing.
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/2dc0d9f7/modules/ml/src/main/java/org/apache/ignite/ml/Model.java
----------------------------------------------------------------------
diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/Model.java b/modules/ml/src/main/java/org/apache/ignite/ml/Model.java
deleted file mode 100644
index 6453108..0000000
--- a/modules/ml/src/main/java/org/apache/ignite/ml/Model.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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 org.apache.ignite.ml;
-
-import java.util.function.BiFunction;
-import org.apache.ignite.ml.inference.InfModel;
-import org.apache.ignite.ml.math.functions.IgniteFunction;
-
-/** Basic interface for all models. */
-public interface Model<T, V> extends InfModel<T, V>, IgniteFunction<T, V> {
- /**
- * Combines this model with other model via specified combiner
- *
- * @param other Other model.
- * @param combiner Combiner.
- * @return Combination of models.
- */
- public default <X, W> Model<T, X> combine(Model<T, W> other, BiFunction<V, W, X> combiner) {
- return v -> combiner.apply(apply(v), other.apply(v));
- }
-
- /**
- * Get a composition model of the form {@code x -> after(mdl(x))}.
- *
- * @param after Function to apply after this model.
- * @param <V1> Type of input of function applied before this model.
- * @return Composition model of the form {@code x -> after(mdl(x))}.
- */
- public default <V1> Model<T, V1> andThen(IgniteFunction<V, V1> after) {
- return t -> after.apply(apply(t));
- }
-
- /**
- * @param pretty Use pretty mode.
- */
- public default String toString(boolean pretty) {
- return getClass().getSimpleName();
- }
-
- /** {@inheritDoc} */
- @Override public default void close() {
- // Do nothing.
- }
-}
http://git-wip-us.apache.org/repos/asf/ignite/blob/2dc0d9f7/modules/ml/src/main/java/org/apache/ignite/ml/clustering/kmeans/Clusterer.java
----------------------------------------------------------------------
diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/clustering/kmeans/Clusterer.java b/modules/ml/src/main/java/org/apache/ignite/ml/clustering/kmeans/Clusterer.java
index 9930f23..c5308bd 100644
--- a/modules/ml/src/main/java/org/apache/ignite/ml/clustering/kmeans/Clusterer.java
+++ b/modules/ml/src/main/java/org/apache/ignite/ml/clustering/kmeans/Clusterer.java
@@ -17,12 +17,12 @@
package org.apache.ignite.ml.clustering.kmeans;
-import org.apache.ignite.ml.Model;
+import org.apache.ignite.ml.IgniteModel;
/**
* Base interface for clusterers.
*/
-public interface Clusterer<P, M extends Model> {
+public interface Clusterer<P, M extends IgniteModel> {
/**
* Cluster given points set into k clusters.
*
http://git-wip-us.apache.org/repos/asf/ignite/blob/2dc0d9f7/modules/ml/src/main/java/org/apache/ignite/ml/clustering/kmeans/ClusterizationModel.java
----------------------------------------------------------------------
diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/clustering/kmeans/ClusterizationModel.java b/modules/ml/src/main/java/org/apache/ignite/ml/clustering/kmeans/ClusterizationModel.java
index 43e1899..42b0823 100644
--- a/modules/ml/src/main/java/org/apache/ignite/ml/clustering/kmeans/ClusterizationModel.java
+++ b/modules/ml/src/main/java/org/apache/ignite/ml/clustering/kmeans/ClusterizationModel.java
@@ -17,10 +17,10 @@
package org.apache.ignite.ml.clustering.kmeans;
-import org.apache.ignite.ml.Model;
+import org.apache.ignite.ml.IgniteModel;
/** Base interface for all clusterization models. */
-public interface ClusterizationModel<P, V> extends Model<P, V> {
+public interface ClusterizationModel<P, V> extends IgniteModel<P, V> {
/** Gets the clusters count. */
public int getAmountOfClusters();
http://git-wip-us.apache.org/repos/asf/ignite/blob/2dc0d9f7/modules/ml/src/main/java/org/apache/ignite/ml/clustering/kmeans/KMeansModel.java
----------------------------------------------------------------------
diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/clustering/kmeans/KMeansModel.java b/modules/ml/src/main/java/org/apache/ignite/ml/clustering/kmeans/KMeansModel.java
index e07f4f0..33d43c8 100644
--- a/modules/ml/src/main/java/org/apache/ignite/ml/clustering/kmeans/KMeansModel.java
+++ b/modules/ml/src/main/java/org/apache/ignite/ml/clustering/kmeans/KMeansModel.java
@@ -68,7 +68,7 @@ public class KMeansModel implements ClusterizationModel<Vector, Integer>, Export
*
* @param vec Vector.
*/
- public Integer apply(Vector vec) {
+ public Integer predict(Vector vec) {
int res = -1;
double minDist = Double.POSITIVE_INFINITY;
http://git-wip-us.apache.org/repos/asf/ignite/blob/2dc0d9f7/modules/ml/src/main/java/org/apache/ignite/ml/composition/ModelOnFeaturesSubspace.java
----------------------------------------------------------------------
diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/composition/ModelOnFeaturesSubspace.java b/modules/ml/src/main/java/org/apache/ignite/ml/composition/ModelOnFeaturesSubspace.java
index 5ef1de5..4a73782 100644
--- a/modules/ml/src/main/java/org/apache/ignite/ml/composition/ModelOnFeaturesSubspace.java
+++ b/modules/ml/src/main/java/org/apache/ignite/ml/composition/ModelOnFeaturesSubspace.java
@@ -20,7 +20,7 @@ package org.apache.ignite.ml.composition;
import java.util.Collections;
import java.util.Map;
import java.util.stream.Collectors;
-import org.apache.ignite.ml.Model;
+import org.apache.ignite.ml.IgniteModel;
import org.apache.ignite.ml.math.primitives.vector.Vector;
import org.apache.ignite.ml.math.primitives.vector.VectorUtils;
import org.apache.ignite.ml.util.ModelTrace;
@@ -28,7 +28,7 @@ import org.apache.ignite.ml.util.ModelTrace;
/**
* Model trained on a features subspace with mapping from original features space to subspace.
*/
-public class ModelOnFeaturesSubspace implements Model<Vector, Double> {
+public class ModelOnFeaturesSubspace implements IgniteModel<Vector, Double> {
/**
* Features mapping to subspace.
*/
@@ -36,7 +36,7 @@ public class ModelOnFeaturesSubspace implements Model<Vector, Double> {
/**
* Trained model of features subspace.
*/
- private final Model<Vector, Double> mdl;
+ private final IgniteModel<Vector, Double> mdl;
/**
* Constructs new instance of ModelOnFeaturesSubspace.
@@ -44,7 +44,7 @@ public class ModelOnFeaturesSubspace implements Model<Vector, Double> {
* @param featuresMapping Features mapping to subspace.
* @param mdl Learned model.
*/
- ModelOnFeaturesSubspace(Map<Integer, Integer> featuresMapping, Model<Vector, Double> mdl) {
+ ModelOnFeaturesSubspace(Map<Integer, Integer> featuresMapping, IgniteModel<Vector, Double> mdl) {
this.featuresMapping = Collections.unmodifiableMap(featuresMapping);
this.mdl = mdl;
}
@@ -55,10 +55,10 @@ public class ModelOnFeaturesSubspace implements Model<Vector, Double> {
* @param features Features vector.
* @return Estimation.
*/
- @Override public Double apply(Vector features) {
+ @Override public Double predict(Vector features) {
double[] newFeatures = new double[featuresMapping.size()];
featuresMapping.forEach((localId, featureVectorId) -> newFeatures[localId] = features.get(featureVectorId));
- return mdl.apply(VectorUtils.of(newFeatures));
+ return mdl.predict(VectorUtils.of(newFeatures));
}
/**
@@ -71,7 +71,7 @@ public class ModelOnFeaturesSubspace implements Model<Vector, Double> {
/**
* Returns model.
*/
- public Model<Vector, Double> getMdl() {
+ public IgniteModel<Vector, Double> getMdl() {
return mdl;
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/2dc0d9f7/modules/ml/src/main/java/org/apache/ignite/ml/composition/ModelsComposition.java
----------------------------------------------------------------------
diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/composition/ModelsComposition.java b/modules/ml/src/main/java/org/apache/ignite/ml/composition/ModelsComposition.java
index 36ee626..a7894c1 100644
--- a/modules/ml/src/main/java/org/apache/ignite/ml/composition/ModelsComposition.java
+++ b/modules/ml/src/main/java/org/apache/ignite/ml/composition/ModelsComposition.java
@@ -21,7 +21,7 @@ import java.util.Collections;
import java.util.List;
import org.apache.ignite.ml.Exportable;
import org.apache.ignite.ml.Exporter;
-import org.apache.ignite.ml.Model;
+import org.apache.ignite.ml.IgniteModel;
import org.apache.ignite.ml.composition.predictionsaggregator.PredictionsAggregator;
import org.apache.ignite.ml.math.primitives.vector.Vector;
import org.apache.ignite.ml.util.ModelTrace;
@@ -29,7 +29,7 @@ import org.apache.ignite.ml.util.ModelTrace;
/**
* Model consisting of several models and prediction aggregation strategy.
*/
-public class ModelsComposition implements Model<Vector, Double>, Exportable<ModelsCompositionFormat> {
+public class ModelsComposition implements IgniteModel<Vector, Double>, Exportable<ModelsCompositionFormat> {
/**
* Predictions aggregator.
*/
@@ -37,7 +37,7 @@ public class ModelsComposition implements Model<Vector, Double>, Exportable<Mode
/**
* Models.
*/
- private final List<Model<Vector, Double>> models;
+ private final List<IgniteModel<Vector, Double>> models;
/**
* Constructs a new instance of composition of models.
@@ -45,7 +45,7 @@ public class ModelsComposition implements Model<Vector, Double>, Exportable<Mode
* @param models Basic models.
* @param predictionsAggregator Predictions aggregator.
*/
- public ModelsComposition(List<? extends Model<Vector, Double>> models, PredictionsAggregator predictionsAggregator) {
+ public ModelsComposition(List<? extends IgniteModel<Vector, Double>> models, PredictionsAggregator predictionsAggregator) {
this.predictionsAggregator = predictionsAggregator;
this.models = Collections.unmodifiableList(models);
}
@@ -56,11 +56,11 @@ public class ModelsComposition implements Model<Vector, Double>, Exportable<Mode
* @param features Features vector.
* @return Estimation.
*/
- @Override public Double apply(Vector features) {
+ @Override public Double predict(Vector features) {
double[] predictions = new double[models.size()];
for (int i = 0; i < models.size(); i++)
- predictions[i] = models.get(i).apply(features);
+ predictions[i] = models.get(i).predict(features);
return predictionsAggregator.apply(predictions);
}
@@ -75,7 +75,7 @@ public class ModelsComposition implements Model<Vector, Double>, Exportable<Mode
/**
* Returns containing models.
*/
- public List<Model<Vector, Double>> getModels() {
+ public List<IgniteModel<Vector, Double>> getModels() {
return models;
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/2dc0d9f7/modules/ml/src/main/java/org/apache/ignite/ml/composition/ModelsCompositionFormat.java
----------------------------------------------------------------------
diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/composition/ModelsCompositionFormat.java b/modules/ml/src/main/java/org/apache/ignite/ml/composition/ModelsCompositionFormat.java
index 68af0a9..ba71afa 100644
--- a/modules/ml/src/main/java/org/apache/ignite/ml/composition/ModelsCompositionFormat.java
+++ b/modules/ml/src/main/java/org/apache/ignite/ml/composition/ModelsCompositionFormat.java
@@ -19,7 +19,7 @@ package org.apache.ignite.ml.composition;
import java.io.Serializable;
import java.util.List;
-import org.apache.ignite.ml.Model;
+import org.apache.ignite.ml.IgniteModel;
import org.apache.ignite.ml.composition.predictionsaggregator.PredictionsAggregator;
import org.apache.ignite.ml.math.primitives.vector.Vector;
@@ -33,7 +33,7 @@ public class ModelsCompositionFormat implements Serializable {
private static final long serialVersionUID = 9115341364082681837L;
/** Models. */
- private List<Model<Vector, Double>> models;
+ private List<IgniteModel<Vector, Double>> models;
/** Predictions aggregator. */
private PredictionsAggregator predictionsAggregator;
@@ -44,13 +44,13 @@ public class ModelsCompositionFormat implements Serializable {
* @param models Models.
* @param predictionsAggregator Predictions aggregator.
*/
- public ModelsCompositionFormat(List<Model<Vector, Double>> models,PredictionsAggregator predictionsAggregator) {
+ public ModelsCompositionFormat(List<IgniteModel<Vector, Double>> models,PredictionsAggregator predictionsAggregator) {
this.models = models;
this.predictionsAggregator = predictionsAggregator;
}
/** */
- public List<Model<Vector, Double>> models() {
+ public List<IgniteModel<Vector, Double>> models() {
return models;
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/2dc0d9f7/modules/ml/src/main/java/org/apache/ignite/ml/composition/boosting/GDBLearningStrategy.java
----------------------------------------------------------------------
diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/composition/boosting/GDBLearningStrategy.java b/modules/ml/src/main/java/org/apache/ignite/ml/composition/boosting/GDBLearningStrategy.java
index 0b87748..7e42d12 100644
--- a/modules/ml/src/main/java/org/apache/ignite/ml/composition/boosting/GDBLearningStrategy.java
+++ b/modules/ml/src/main/java/org/apache/ignite/ml/composition/boosting/GDBLearningStrategy.java
@@ -20,7 +20,7 @@ package org.apache.ignite.ml.composition.boosting;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
-import org.apache.ignite.ml.Model;
+import org.apache.ignite.ml.IgniteModel;
import org.apache.ignite.ml.composition.ModelsComposition;
import org.apache.ignite.ml.composition.boosting.convergence.ConvergenceChecker;
import org.apache.ignite.ml.composition.boosting.convergence.ConvergenceCheckerFactory;
@@ -58,7 +58,7 @@ public class GDBLearningStrategy {
protected IgniteFunction<Double, Double> externalLbToInternalMapping;
/** Base model trainer builder. */
- protected IgniteSupplier<DatasetTrainer<? extends Model<Vector, Double>, Double>> baseMdlTrainerBuilder;
+ protected IgniteSupplier<DatasetTrainer<? extends IgniteModel<Vector, Double>, Double>> baseMdlTrainerBuilder;
/** Mean label value. */
protected double meanLbVal;
@@ -84,7 +84,7 @@ public class GDBLearningStrategy {
* @param lbExtractor Label extractor.
* @return list of learned models.
*/
- public <K, V> List<Model<Vector, Double>> learnModels(DatasetBuilder<K, V> datasetBuilder,
+ public <K, V> List<IgniteModel<Vector, Double>> learnModels(DatasetBuilder<K, V> datasetBuilder,
IgniteBiFunction<K, V, Vector> featureExtractor, IgniteBiFunction<K, V, Double> lbExtractor) {
return update(null, datasetBuilder, featureExtractor, lbExtractor);
@@ -102,18 +102,18 @@ public class GDBLearningStrategy {
* @param <V> Type of a value in {@code upstream} data.
* @return Updated models list.
*/
- public <K,V> List<Model<Vector, Double>> update(GDBTrainer.GDBModel mdlToUpdate,
+ public <K,V> List<IgniteModel<Vector, Double>> update(GDBTrainer.GDBModel mdlToUpdate,
DatasetBuilder<K, V> datasetBuilder, IgniteBiFunction<K, V, Vector> featureExtractor,
IgniteBiFunction<K, V, Double> lbExtractor) {
if (trainerEnvironment == null)
throw new IllegalStateException("Learning environment builder is not set.");
- List<Model<Vector, Double>> models = initLearningState(mdlToUpdate);
+ List<IgniteModel<Vector, Double>> models = initLearningState(mdlToUpdate);
ConvergenceChecker<K, V> convCheck = checkConvergenceStgyFactory.create(sampleSize,
externalLbToInternalMapping, loss, datasetBuilder, featureExtractor, lbExtractor);
- DatasetTrainer<? extends Model<Vector, Double>, Double> trainer = baseMdlTrainerBuilder.get();
+ DatasetTrainer<? extends IgniteModel<Vector, Double>, Double> trainer = baseMdlTrainerBuilder.get();
for (int i = 0; i < cntOfIterations; i++) {
double[] weights = Arrays.copyOf(compositionWeights, models.size());
@@ -124,7 +124,7 @@ public class GDBLearningStrategy {
IgniteBiFunction<K, V, Double> lbExtractorWrap = (k, v) -> {
Double realAnswer = externalLbToInternalMapping.apply(lbExtractor.apply(k, v));
- Double mdlAnswer = currComposition.apply(featureExtractor.apply(k, v));
+ Double mdlAnswer = currComposition.predict(featureExtractor.apply(k, v));
return -loss.gradient(sampleSize, realAnswer, mdlAnswer);
};
@@ -143,8 +143,8 @@ public class GDBLearningStrategy {
* @param mdlToUpdate Model to update.
* @return list of already learned models.
*/
- @NotNull protected List<Model<Vector, Double>> initLearningState(GDBTrainer.GDBModel mdlToUpdate) {
- List<Model<Vector, Double>> models = new ArrayList<>();
+ @NotNull protected List<IgniteModel<Vector, Double>> initLearningState(GDBTrainer.GDBModel mdlToUpdate) {
+ List<IgniteModel<Vector, Double>> models = new ArrayList<>();
if(mdlToUpdate != null) {
models.addAll(mdlToUpdate.getModels());
WeightedPredictionsAggregator aggregator = (WeightedPredictionsAggregator) mdlToUpdate.getPredictionsAggregator();
@@ -207,7 +207,7 @@ public class GDBLearningStrategy {
* @param buildBaseMdlTrainer Build base model trainer.
*/
public GDBLearningStrategy withBaseModelTrainerBuilder(
- IgniteSupplier<DatasetTrainer<? extends Model<Vector, Double>, Double>> buildBaseMdlTrainer) {
+ IgniteSupplier<DatasetTrainer<? extends IgniteModel<Vector, Double>, Double>> buildBaseMdlTrainer) {
this.baseMdlTrainerBuilder = buildBaseMdlTrainer;
return this;
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/2dc0d9f7/modules/ml/src/main/java/org/apache/ignite/ml/composition/boosting/GDBTrainer.java
----------------------------------------------------------------------
diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/composition/boosting/GDBTrainer.java b/modules/ml/src/main/java/org/apache/ignite/ml/composition/boosting/GDBTrainer.java
index 03772ec..35502ab 100644
--- a/modules/ml/src/main/java/org/apache/ignite/ml/composition/boosting/GDBTrainer.java
+++ b/modules/ml/src/main/java/org/apache/ignite/ml/composition/boosting/GDBTrainer.java
@@ -20,7 +20,7 @@ package org.apache.ignite.ml.composition.boosting;
import java.util.Arrays;
import java.util.List;
import org.apache.ignite.lang.IgniteBiTuple;
-import org.apache.ignite.ml.Model;
+import org.apache.ignite.ml.IgniteModel;
import org.apache.ignite.ml.composition.ModelsComposition;
import org.apache.ignite.ml.composition.boosting.convergence.ConvergenceCheckerFactory;
import org.apache.ignite.ml.composition.boosting.convergence.mean.MeanAbsValueConvergenceCheckerFactory;
@@ -124,7 +124,7 @@ public abstract class GDBTrainer extends DatasetTrainer<ModelsComposition, Doubl
.withDefaultGradStepSize(gradientStep)
.withCheckConvergenceStgyFactory(checkConvergenceStgyFactory);
- List<Model<Vector, Double>> models;
+ List<IgniteModel<Vector, Double>> models;
if (mdl != null)
models = stgy.update((GDBModel)mdl, datasetBuilder, featureExtractor, lbExtractor);
else
@@ -165,7 +165,7 @@ public abstract class GDBTrainer extends DatasetTrainer<ModelsComposition, Doubl
* Returns regressor model trainer for one step of GDB.
*/
@NotNull
- protected abstract DatasetTrainer<? extends Model<Vector, Double>, Double> buildBaseModelTrainer();
+ protected abstract DatasetTrainer<? extends IgniteModel<Vector, Double>, Double> buildBaseModelTrainer();
/**
* Maps external representation of label to internal.
@@ -263,7 +263,7 @@ public abstract class GDBTrainer extends DatasetTrainer<ModelsComposition, Doubl
* @param predictionsAggregator Predictions aggregator.
* @param internalToExternalLblMapping Internal to external lbl mapping.
*/
- public GDBModel(List<? extends Model<Vector, Double>> models,
+ public GDBModel(List<? extends IgniteModel<Vector, Double>> models,
WeightedPredictionsAggregator predictionsAggregator,
IgniteFunction<Double, Double> internalToExternalLblMapping) {
@@ -272,8 +272,8 @@ public abstract class GDBTrainer extends DatasetTrainer<ModelsComposition, Doubl
}
/** {@inheritDoc} */
- @Override public Double apply(Vector features) {
- return internalToExternalLblMapping.apply(super.apply(features));
+ @Override public Double predict(Vector features) {
+ return internalToExternalLblMapping.apply(super.predict(features));
}
}
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/2dc0d9f7/modules/ml/src/main/java/org/apache/ignite/ml/composition/boosting/convergence/ConvergenceChecker.java
----------------------------------------------------------------------
diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/composition/boosting/convergence/ConvergenceChecker.java b/modules/ml/src/main/java/org/apache/ignite/ml/composition/boosting/convergence/ConvergenceChecker.java
index e383e39..f7da9a1 100644
--- a/modules/ml/src/main/java/org/apache/ignite/ml/composition/boosting/convergence/ConvergenceChecker.java
+++ b/modules/ml/src/main/java/org/apache/ignite/ml/composition/boosting/convergence/ConvergenceChecker.java
@@ -140,7 +140,7 @@ public abstract class ConvergenceChecker<K, V> implements Serializable {
*/
public double computeError(Vector features, Double answer, ModelsComposition currMdl) {
Double realAnswer = externalLbToInternalMapping.apply(answer);
- Double mdlAnswer = currMdl.apply(features);
+ Double mdlAnswer = currMdl.predict(features);
return -loss.gradient(sampleSize, realAnswer, mdlAnswer);
}
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/2dc0d9f7/modules/ml/src/main/java/org/apache/ignite/ml/composition/stacking/SimpleStackedDatasetTrainer.java
----------------------------------------------------------------------
diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/composition/stacking/SimpleStackedDatasetTrainer.java b/modules/ml/src/main/java/org/apache/ignite/ml/composition/stacking/SimpleStackedDatasetTrainer.java
index c4c082f..a117f43 100644
--- a/modules/ml/src/main/java/org/apache/ignite/ml/composition/stacking/SimpleStackedDatasetTrainer.java
+++ b/modules/ml/src/main/java/org/apache/ignite/ml/composition/stacking/SimpleStackedDatasetTrainer.java
@@ -18,7 +18,7 @@
package org.apache.ignite.ml.composition.stacking;
import java.util.ArrayList;
-import org.apache.ignite.ml.Model;
+import org.apache.ignite.ml.IgniteModel;
import org.apache.ignite.ml.environment.LearningEnvironmentBuilder;
import org.apache.ignite.ml.math.functions.IgniteBinaryOperator;
import org.apache.ignite.ml.math.functions.IgniteFunction;
@@ -33,7 +33,7 @@ import org.apache.ignite.ml.trainers.DatasetTrainer;
* @param <AM> Type of aggregator model.
* @param <L> Type of labels.
*/
-public class SimpleStackedDatasetTrainer<I, O, AM extends Model<I, O>, L> extends StackedDatasetTrainer<I, I, O, AM, L> {
+public class SimpleStackedDatasetTrainer<I, O, AM extends IgniteModel<I, O>, L> extends StackedDatasetTrainer<I, I, O, AM, L> {
/**
* Construct instance of this class.
*
@@ -75,7 +75,7 @@ public class SimpleStackedDatasetTrainer<I, O, AM extends Model<I, O>, L> extend
//TODO: IGNITE-10441 -- Look for options to avoid boilerplate overrides.
/** {@inheritDoc} */
- @Override public <M1 extends Model<I, I>> SimpleStackedDatasetTrainer<I, O, AM, L> addTrainer(
+ @Override public <M1 extends IgniteModel<I, I>> SimpleStackedDatasetTrainer<I, O, AM, L> addTrainer(
DatasetTrainer<M1, L> trainer) {
return (SimpleStackedDatasetTrainer<I, O, AM, L>)super.addTrainer(trainer);
}