Multi-Layer Perceptron for the XOR problem using Neuroph (Jython)
Source code name: "neural_net_MLP.py"
Programming language: Python
Topic: Artificial Intelligence/neural net
DMelt Version 1. Last modified: 10/25/2015. License: Pro
https://datamelt.org/code/cache/neural_net_MLP_2741.py
To run this script using the DataMelt IDE, copy the above URL link to the menu [File]→[Read script from URL] of the DMelt IDE.


from jhplot import *
from jhplot.io import *
from org.neuroph.core.data import DataSet
from org.neuroph.core.data import DataSetRow
from org.neuroph.nnet import MultiLayerPerceptron
from org.neuroph.util import TransferFunctionType
from org.neuroph.core import NeuralNetwork

data=DataSet(2, 1)
data.addRow(DataSetRow([0,0],[0]))
data.addRow(DataSetRow([0,1],[1]))
data.addRow(DataSetRow([1,0],[1]))
data.addRow(DataSetRow([1,1],[0]))

#  2 inputs, 3 midle layers, 1 output
myMlP = MultiLayerPerceptron(TransferFunctionType.TANH, [2, 3, 1]);
learningRule = myMlP.getLearningRule()
learningRule.setBatchMode(True)
print "Training neural network..."
myMlP.learn(data)
print "Training done! Save NN"
myMlP.save("myMlPerceptron.nnet");

print "Read saved .."
nnet =NeuralNetwork.createFromFile("myMlPerceptron.nnet");

print "Testing.."
for dataRow in data.getRows(): 
    nnet.setInput(dataRow.getInput().tolist())
    nnet.calculate()
    networkOutput = nnet.getOutput();
    print "Input: ", dataRow.getInput().tolist() 
    print " Output: ", networkOutput.tolist()

Ads help maintain this website.