Preparation

References

Examples

Try the Perceptron example first with Neuroph Studio: This is the Perceptron example from http://neuroph.sourceforge.net/tutorials/Perceptron.html:

Java code

   1 import java.util.Arrays;
   2 import org.neuroph.core.NeuralNetwork;
   3 import org.neuroph.nnet.Perceptron;
   4 import org.neuroph.core.data.DataSet;
   5 import org.neuroph.core.data.DataSetRow;
   6 
   7 /**
   8  * This sample shows how to create, train, save and load simple Perceptron
   9  * neural network
  10  */
  11 public class PerceptronSample {
  12 
  13         public static void main(String args[]) {
  14 
  15                 // create training set (logical AND function)
  16                 DataSet trainingSet = new DataSet(2, 1);
  17                 trainingSet.addRow(new DataSetRow(new double[] { 0, 0 }, new double[] { 0 }));
  18                 trainingSet.addRow(new DataSetRow(new double[] { 0, 1 }, new double[] { 0 }));
  19                 trainingSet.addRow(new DataSetRow(new double[] { 1, 0 }, new double[] { 0 }));
  20                 trainingSet.addRow(new DataSetRow(new double[] { 1, 1 }, new double[] { 1 }));
  21 
  22                 // create perceptron neural network
  23                 NeuralNetwork myPerceptron = new Perceptron(2, 1);
  24 
  25                 // learn the training set
  26                 myPerceptron.learn(trainingSet);
  27 
  28                 // test perceptron
  29                 System.out.println("Testing trained perceptron");
  30                 testNeuralNetwork(myPerceptron, trainingSet);
  31 
  32                 // save trained perceptron
  33                 myPerceptron.save("mySamplePerceptron.nnet");
  34 
  35                 // load saved neural network
  36                 NeuralNetwork loadedPerceptron = NeuralNetwork.load("mySamplePerceptron.nnet");
  37 
  38                 // test loaded neural network
  39                 System.out.println("Testing loaded perceptron");
  40                 testNeuralNetwork(loadedPerceptron, trainingSet);
  41         }
  42 
  43         public static void testNeuralNetwork(NeuralNetwork nnet, DataSet tset) {
  44 
  45                 for (DataSetRow dataRow : tset.getRows()) {
  46 
  47                         nnet.setInput(dataRow.getInput());
  48                         nnet.calculate();
  49                         double[] networkOutput = nnet.getOutput();
  50                         System.out.print("Input: " + Arrays.toString(dataRow.getInput()));
  51                         System.out.println(" Output: " + Arrays.toString(networkOutput));
  52                 }
  53         }
  54 }

Processing code

   1 import org.neuroph.util.plugins.*;
   2 import org.neuroph.core.transfer.*;
   3 import org.neuroph.util.*;
   4 import org.neuroph.nnet.comp.layer.*;
   5 import org.neuroph.nnet.*;
   6 import org.neuroph.core.events.*;
   7 import org.neuroph.core.learning.error.*;
   8 import org.neuroph.core.data.sample.*;
   9 import org.neuroph.util.io.*;
  10 import org.neuroph.core.exceptions.*;
  11 import org.neuroph.core.learning.*;
  12 import org.neuroph.core.input.*;
  13 import org.neuroph.nnet.learning.*;
  14 import org.neuroph.util.benchmark.*;
  15 import org.neuroph.util.random.*;
  16 import org.neuroph.nnet.comp.*;
  17 import org.neuroph.core.learning.stop.*;
  18 import org.neuroph.core.data.*;
  19 import org.neuroph.core.*;
  20 import org.neuroph.nnet.comp.neuron.*;
  21 import org.neuroph.core.data.norm.*;
  22 
  23 import java.util.*;
  24 
  25 /**
  26  * This sample shows how to create, train, save and load simple Perceptron neural network 
  27  */
  28 void setup() {
  29 
  30   // create training set (logical AND function)
  31   DataSet trainingSet = new DataSet(2, 1);
  32   trainingSet.addRow(new DataSetRow(new double[] {
  33     0, 0
  34   }
  35   , new double[] {
  36     0
  37   }
  38   ));
  39   trainingSet.addRow(new DataSetRow(new double[] {
  40     0, 1
  41   }
  42   , new double[] {
  43     0
  44   }
  45   ));
  46   trainingSet.addRow(new DataSetRow(new double[] {
  47     1, 0
  48   }
  49   , new double[] {
  50     0
  51   }
  52   ));
  53   trainingSet.addRow(new DataSetRow(new double[] {
  54     1, 1
  55   }
  56   , new double[] {
  57     1
  58   }
  59   ));
  60 
  61   // create perceptron neural network
  62   NeuralNetwork myPerceptron = new Perceptron(2, 1);
  63 
  64   // learn the training set
  65   myPerceptron.learn(trainingSet);
  66 
  67   // test perceptron
  68   System.out.println("Testing trained perceptron");
  69   testNeuralNetwork(myPerceptron, trainingSet);
  70 
  71   // save trained perceptron
  72   myPerceptron.save("mySamplePerceptron.nnet");
  73 
  74   // load saved neural network
  75   NeuralNetwork loadedPerceptron = NeuralNetwork.load("mySamplePerceptron.nnet");
  76 
  77   // test loaded neural network
  78   System.out.println("Testing loaded perceptron");
  79   testNeuralNetwork(loadedPerceptron, trainingSet);
  80 }
  81 
  82 void testNeuralNetwork(NeuralNetwork nnet, DataSet tset) {
  83 
  84   for (DataSetRow dataRow : tset.getRows()) {
  85 
  86     nnet.setInput(dataRow.getInput());
  87     nnet.calculate();
  88     double[ ] networkOutput = nnet.getOutput();
  89     System.out.print("Input: " + Arrays.toString(dataRow.getInput()) );
  90     System.out.println(" Output: " + Arrays.toString(networkOutput) );
  91   }
  92 }

A trained XOR multilayer perceptron network

MultiLayerPerceptron.nnet