package org.neuroph.contrib.matrixmlp;
import org.neuroph.contrib.matrixmlp.MatrixLayer;
import org.neuroph.contrib.matrixmlp.MatrixMultiLayerPerceptron;
import org.neuroph.core.Layer;
import org.neuroph.core.Neuron;
import org.neuroph.core.learning.SupervisedTrainingElement;
import org.neuroph.core.learning.TrainingSet;
import org.neuroph.nnet.MultiLayerPerceptron;
import org.neuroph.util.TransferFunctionType;
/**
* Test class for matrix based MLP implementation.
* @author Zoran Sevarac
*/
public class TestMatrixMLP {
/**
* Create and run MLP with XOR training set
*/
public static void main(String[] args) {
// create training set (logical XOR function)
TrainingSet trainingSet = new TrainingSet(2, 1);
trainingSet.addElement(new SupervisedTrainingElement(new double[]{0, 0}, new double[]{0}));
trainingSet.addElement(new SupervisedTrainingElement(new double[]{0, 1}, new double[]{1}));
trainingSet.addElement(new SupervisedTrainingElement(new double[]{1, 0}, new double[]{1}));
trainingSet.addElement(new SupervisedTrainingElement(new double[]{1, 1}, new double[]{0}));
MultiLayerPerceptron nnet = new MultiLayerPerceptron( TransferFunctionType.TANH ,2, 3, 1);
MatrixMultiLayerPerceptron mnet = new MatrixMultiLayerPerceptron(nnet);
System.out.println("Training network...");
mnet.learnInSameThread(trainingSet);
System.out.println("Done training network.");
}
}