neuroph实现感知机 计算xor问题

package com.core.perceptron;

import java.util.Arrays;

import org.neuroph.core.*;
import org.neuroph.core.data.*;
import org.neuroph.nnet.MultiLayerPerceptron;
import org.neuroph.util.TransferFunctionType;

public class XORDemo {
    public static void main(String[] args){
        DataSet trainingSet = new DataSet(2, 1);
        trainingSet.addRow(new DataSetRow(new double[]{0, 0}, new double[] {0}));
        trainingSet.addRow(new DataSetRow(new double[]{0, 1}, new double[] {1}));
        trainingSet.addRow(new DataSetRow(new double[]{1, 0}, new double[] {1}));
        trainingSet.addRow(new DataSetRow(new double[]{1, 1}, new double[] {0}));
        
        MultiLayerPerceptron myMLP = new MultiLayerPerceptron(TransferFunctionType.TANH, 2 ,3 ,1);
        System.out.println("Training network...");
        myMLP.learn(trainingSet);
        System.out.println("Testing network");
        testNeuralNetwork(myMLP, trainingSet);
    }
    
    public static void testNeuralNetwork(NeuralNetwork nnet, DataSet tset) {            
        for (DataSetRow dataRow : tset.getRows()) {  

               nnet.setInput(dataRow.getInput());  
               nnet.calculate();  
               double[ ] networkOutput = nnet.getOutput();  
               System.out.print("Input: " + Arrays.toString(dataRow.getInput()) );  
               System.out.println(" Output: " + Arrays.toString(networkOutput) );  
             }  
    }  
}

 

导入neuroph-core-2.93.jar  neuroph-imgrec-2.93.jar  neuroph-ocr-2.93.jar及slf4j

posted @ 2017-06-29 22:03  cnlixl  阅读(484)  评论(0编辑  收藏  举报