From f1b6533629709046dea3faa77ba7b088df26077a Mon Sep 17 00:00:00 2001 From: rschoene <rene.schoene@tu-dresden.de> Date: Thu, 2 May 2019 18:23:51 +0200 Subject: [PATCH] Rename and move model.Model in api to EncogModel. --- .../inf/st/eraser/starter/EraserStarter.java | 4 ++-- .../api/{model/Model.java => EncogModel.java} | 6 +++--- .../inf/st/eraser/feedbackloop/api/Learner.java | 5 ++--- .../feedbackloop/learner/LearnerHelper.java | 14 +++++++------- .../eraser/feedbackloop/learner/LearnerImpl.java | 16 ++++++++-------- .../inf/st/eraser/feedbackloop/learner/Main.java | 10 +++++----- 6 files changed, 27 insertions(+), 28 deletions(-) rename feedbackloop.api/src/main/java/de/tudresden/inf/st/eraser/feedbackloop/api/{model/Model.java => EncogModel.java} (88%) diff --git a/eraser.starter/src/main/java/de/tudresden/inf/st/eraser/starter/EraserStarter.java b/eraser.starter/src/main/java/de/tudresden/inf/st/eraser/starter/EraserStarter.java index 1bf2b068..b263fd58 100644 --- a/eraser.starter/src/main/java/de/tudresden/inf/st/eraser/starter/EraserStarter.java +++ b/eraser.starter/src/main/java/de/tudresden/inf/st/eraser/starter/EraserStarter.java @@ -8,7 +8,7 @@ import de.tudresden.inf.st.eraser.feedbackloop.api.Analyze; import de.tudresden.inf.st.eraser.feedbackloop.api.Execute; import de.tudresden.inf.st.eraser.feedbackloop.api.Learner; import de.tudresden.inf.st.eraser.feedbackloop.api.Plan; -import de.tudresden.inf.st.eraser.feedbackloop.api.model.Model; +import de.tudresden.inf.st.eraser.feedbackloop.api.EncogModel; import de.tudresden.inf.st.eraser.feedbackloop.execute.ExecuteImpl; import de.tudresden.inf.st.eraser.feedbackloop.learner.LearnerHelper; import de.tudresden.inf.st.eraser.feedbackloop.learner.LearnerImpl; @@ -142,7 +142,7 @@ public class EraserStarter { // Model preference = learner.getTrainedModel(settings.preference.realURL(), settings.preference.id); logger.debug("Loading of {} was {}", settings.preference.realURL(), loadingSuccessful ? "successful" : "failed"); if (loadingSuccessful) { - Model preference = learner.getTrainedModel(settings.preference.id); + EncogModel preference = learner.getTrainedModel(settings.preference.id); NeuralNetworkRoot neuralNetwork = LearnerHelper.transform(preference); if (neuralNetwork == null) { logger.error("Could not create preference model, see possible previous errors."); diff --git a/feedbackloop.api/src/main/java/de/tudresden/inf/st/eraser/feedbackloop/api/model/Model.java b/feedbackloop.api/src/main/java/de/tudresden/inf/st/eraser/feedbackloop/api/EncogModel.java similarity index 88% rename from feedbackloop.api/src/main/java/de/tudresden/inf/st/eraser/feedbackloop/api/model/Model.java rename to feedbackloop.api/src/main/java/de/tudresden/inf/st/eraser/feedbackloop/api/EncogModel.java index d3951ee8..c0bc0336 100644 --- a/feedbackloop.api/src/main/java/de/tudresden/inf/st/eraser/feedbackloop/api/model/Model.java +++ b/feedbackloop.api/src/main/java/de/tudresden/inf/st/eraser/feedbackloop/api/EncogModel.java @@ -1,4 +1,4 @@ -package de.tudresden.inf.st.eraser.feedbackloop.api.model; +package de.tudresden.inf.st.eraser.feedbackloop.api; import lombok.Getter; import lombok.Setter; @@ -18,7 +18,7 @@ import java.util.Objects; * */ @Getter @Setter -public class Model { +public class EncogModel { /** * todo */ @@ -26,7 +26,7 @@ public class Model { private List<Double> weights; private List<Layer> layers; - public Model(String model) { + public EncogModel(String model) { modelType = model; } diff --git a/feedbackloop.api/src/main/java/de/tudresden/inf/st/eraser/feedbackloop/api/Learner.java b/feedbackloop.api/src/main/java/de/tudresden/inf/st/eraser/feedbackloop/api/Learner.java index 16bcc040..a08a6fc2 100644 --- a/feedbackloop.api/src/main/java/de/tudresden/inf/st/eraser/feedbackloop/api/Learner.java +++ b/feedbackloop.api/src/main/java/de/tudresden/inf/st/eraser/feedbackloop/api/Learner.java @@ -7,7 +7,6 @@ import java.util.List; import org.encog.util.arrayutil.NormalizedField; -import de.tudresden.inf.st.eraser.feedbackloop.api.model.Model; import de.tudresden.inf.st.eraser.jastadd.model.Root; /** @@ -117,10 +116,10 @@ public interface Learner { * @param modelID - ID of the model of which information is requested from * @return Model - Object that contains the information of the requested model * */ - Model getTrainedModel(int modelID); + EncogModel getTrainedModel(int modelID); @Deprecated - Model getTrainedModel(URL url, int modelID); + EncogModel getTrainedModel(URL url, int modelID); /** * diff --git a/feedbackloop.learner/src/main/java/de/tudresden/inf/st/eraser/feedbackloop/learner/LearnerHelper.java b/feedbackloop.learner/src/main/java/de/tudresden/inf/st/eraser/feedbackloop/learner/LearnerHelper.java index c33928e0..f23b5810 100644 --- a/feedbackloop.learner/src/main/java/de/tudresden/inf/st/eraser/feedbackloop/learner/LearnerHelper.java +++ b/feedbackloop.learner/src/main/java/de/tudresden/inf/st/eraser/feedbackloop/learner/LearnerHelper.java @@ -1,6 +1,6 @@ package de.tudresden.inf.st.eraser.feedbackloop.learner; -import de.tudresden.inf.st.eraser.feedbackloop.api.model.Model; +import de.tudresden.inf.st.eraser.feedbackloop.api.EncogModel; import de.tudresden.inf.st.eraser.jastadd.model.*; import org.apache.commons.math3.stat.StatUtils; import org.apache.logging.log4j.LogManager; @@ -17,7 +17,7 @@ import java.util.List; import java.util.stream.Collectors; /** - * Transformation of a {@link Model} into a {@link NeuralNetworkRoot}. + * Transformation of a {@link EncogModel} into a {@link NeuralNetworkRoot}. * * @author rschoene - Initial contribution */ @@ -30,14 +30,14 @@ public class LearnerHelper { private static DoubleArrayDoubleFunction tanh = inputs -> Math.tanh(Arrays.stream(inputs).sum()); private static DoubleArrayDoubleFunction function_one = inputs -> 1.0; - public static NeuralNetworkRoot transform(Model model) { + public static NeuralNetworkRoot transform(EncogModel encogModel) { NeuralNetworkRoot result = NeuralNetworkRoot.createEmpty(); - List<Double> weights = model.getWeights(); + List<Double> weights = encogModel.getWeights(); logger.debug("Got {} weights", weights.size()); List<List<Neuron>> allNeurons = new ArrayList<>(); // inputs - Layer inputLayer = model.getInputLayer(); + Layer inputLayer = encogModel.getInputLayer(); reportLayer("input", inputLayer); List<Neuron> inputNeurons = new ArrayList<>(); for (int i = 0; i < nonBiasNeuronCount(inputLayer); ++i) { @@ -50,7 +50,7 @@ public class LearnerHelper { // hidden layer List<Neuron> currentNeurons; - for (Layer hiddenLayer : model.getHiddenLayers()) { + for (Layer hiddenLayer : encogModel.getHiddenLayers()) { reportLayer("one hidden", hiddenLayer); currentNeurons = new ArrayList<>(); allNeurons.add(currentNeurons); @@ -65,7 +65,7 @@ public class LearnerHelper { // output layer OutputLayer outputLayer = new OutputLayer(); - Layer modelOutputLayer = model.getOutputLayer(); + Layer modelOutputLayer = encogModel.getOutputLayer(); reportLayer("output", modelOutputLayer); List<Neuron> outputNeurons = new ArrayList<>(); for (int i = 0; i < nonBiasNeuronCount(modelOutputLayer); ++i) { diff --git a/feedbackloop.learner/src/main/java/de/tudresden/inf/st/eraser/feedbackloop/learner/LearnerImpl.java b/feedbackloop.learner/src/main/java/de/tudresden/inf/st/eraser/feedbackloop/learner/LearnerImpl.java index 8cd30d35..83edf6b7 100644 --- a/feedbackloop.learner/src/main/java/de/tudresden/inf/st/eraser/feedbackloop/learner/LearnerImpl.java +++ b/feedbackloop.learner/src/main/java/de/tudresden/inf/st/eraser/feedbackloop/learner/LearnerImpl.java @@ -1,7 +1,7 @@ package de.tudresden.inf.st.eraser.feedbackloop.learner; +import de.tudresden.inf.st.eraser.feedbackloop.api.EncogModel; import de.tudresden.inf.st.eraser.feedbackloop.api.Learner; -import de.tudresden.inf.st.eraser.feedbackloop.api.model.Model; import de.tudresden.inf.st.eraser.jastadd.model.Root; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -170,17 +170,17 @@ public class LearnerImpl implements Learner { @Override - public Model getTrainedModel(int modelID) { + public EncogModel getTrainedModel(int modelID) { return fillModel(modelID); } @Override - public Model getTrainedModel(URL url, int modelID) { + public EncogModel getTrainedModel(URL url, int modelID) { return fillModel(modelID); } - private Model fillModel(int modelID) { - Model model = new Model("NN"); + private EncogModel fillModel(int modelID) { + EncogModel encogModel = new EncogModel("NN"); BasicNetwork nn = models.get(modelID).getNetwork(); ArrayList<Double> weightsList = new ArrayList<>(); @@ -191,7 +191,7 @@ public class LearnerImpl implements Learner { weightsList.add(Double.valueOf(split[i])); } - model.setWeights(weightsList); + encogModel.setWeights(weightsList); // do not use getLayers() because it is not restored immediately on load from file FlatNetwork flat = nn.getFlat(); @@ -205,9 +205,9 @@ public class LearnerImpl implements Learner { layers.add(0, l); } - model.setLayers(layers); + encogModel.setLayers(layers); - return model; + return encogModel; } diff --git a/feedbackloop.learner/src/main/java/de/tudresden/inf/st/eraser/feedbackloop/learner/Main.java b/feedbackloop.learner/src/main/java/de/tudresden/inf/st/eraser/feedbackloop/learner/Main.java index 97c90b4a..0f82201e 100644 --- a/feedbackloop.learner/src/main/java/de/tudresden/inf/st/eraser/feedbackloop/learner/Main.java +++ b/feedbackloop.learner/src/main/java/de/tudresden/inf/st/eraser/feedbackloop/learner/Main.java @@ -1,7 +1,7 @@ package de.tudresden.inf.st.eraser.feedbackloop.learner; import de.tudresden.inf.st.eraser.feedbackloop.api.Learner; -import de.tudresden.inf.st.eraser.feedbackloop.api.model.Model; +import de.tudresden.inf.st.eraser.feedbackloop.api.EncogModel; import de.tudresden.inf.st.eraser.jastadd.model.*; import org.apache.commons.math3.stat.StatUtils; import org.apache.logging.log4j.LogManager; @@ -68,10 +68,10 @@ public class Main { NeuralNetworkRoot eraserModel = LearnerHelper.transform(learner.getTrainedModel(1)); } - private static void printModel(Model model) { - logger.info("Model Type is: " + model.getModelType()); - logger.info("Model Weights are: " + model.getWeights()); - logger.info("Model layers are: " + model.getLayers()); + private static void printModel(EncogModel encogModel) { + logger.info("Model Type is: " + encogModel.getModelType()); + logger.info("Model Weights are: " + encogModel.getWeights()); + logger.info("Model layers are: " + encogModel.getLayers()); // logger.info("Model input normal neutrons: " + model.getInputLayerNumber()); // logger.info("Model input bias neutron: " + model.getInputBias()); // logger.info("Model hidden normal neutrons: " + model.gethiddenLayerNumber()); -- GitLab