Add multi-layer support

This commit is contained in:
2026-03-26 21:21:31 +01:00
parent 3dd4404f51
commit 64bc830f18
30 changed files with 228 additions and 172 deletions

View File

@@ -1,16 +1,13 @@
package com.naaturel.ANN;
import com.naaturel.ANN.domain.abstraction.Neuron;
import com.naaturel.ANN.domain.model.neuron.Neuron;
import com.naaturel.ANN.domain.abstraction.Trainer;
import com.naaturel.ANN.domain.model.dataset.DataSet;
import com.naaturel.ANN.domain.model.dataset.DatasetExtractor;
import com.naaturel.ANN.domain.model.neuron.*;
import com.naaturel.ANN.implementation.gradientDescent.Linear;
import com.naaturel.ANN.implementation.simplePerceptron.Heaviside;
import com.naaturel.ANN.implementation.neuron.SimplePerceptron;
import com.naaturel.ANN.implementation.training.AdalineTraining;
import com.naaturel.ANN.implementation.training.GradientDescentTraining;
import com.naaturel.ANN.implementation.training.SimpleTraining;
import java.util.*;
@@ -18,20 +15,27 @@ public class Main {
public static void main(String[] args){
int nbrInput = 3;
int nbrClass = 3;
DataSet dataset = new DatasetExtractor()
.extract("C:/Users/Laurent/Desktop/ANN-framework/src/main/resources/assets/table_2_9.csv");
.extract("C:/Users/Laurent/Desktop/ANN-framework/src/main/resources/assets/table_3_1.csv", nbrClass);
DataSet andDataset = new DatasetExtractor()
.extract("C:/Users/Laurent/Desktop/ANN-framework/src/main/resources/assets/and-gradient.csv");
List<Neuron> neurons = new ArrayList<>();
List<Synapse> syns = new ArrayList<>();
syns.add(new Synapse(new Input(0), new Weight(0)));
syns.add(new Synapse(new Input(0), new Weight(0)));
for (int i=0; i < nbrClass; i++){
List<Synapse> syns = new ArrayList<>();
for (int j=0; j < nbrInput; j++){
syns.add(new Synapse(new Input(0), new Weight(0)));
}
Bias bias = new Bias(new Weight(0));
Bias bias = new Bias(new Weight(0));
Neuron neuron = new SimplePerceptron(syns, bias, new Linear());
Layer layer = new Layer(List.of(neuron));
Neuron n = new Neuron(syns, bias, new Linear());
neurons.add(n);
}
Layer layer = new Layer(neurons);
Network network = new Network(List.of(layer));
Trainer trainer = new AdalineTraining();