In [1]:
from pybrain.datasets.supervised import SupervisedDataSet
from pybrain.tools.shortcuts import buildNetwork
from pybrain.supervised.trainers.backprop import BackpropTrainer

In [2]:
# initialize a dataset with two inputs and one output
D = SupervisedDataSet(2,1)

# supply samples (XOR)
D.addSample([0,0],[0])
D.addSample([0,1],[1])
D.addSample([1,0],[1])
D.addSample([1,1],[0])

# build network with 2 input neurons, 4 hidden-layer neurons and 1 output neuron
N = buildNetwork(2,4,1)

# train the network with a backprop trainer
T = BackpropTrainer(N, learningrate = 0.01, momentum = 0.99)

print 'MSE before', T.testOnData(D)
T.trainOnDataset(D,1000)
print 'MSE after', T.testOnData(D)


MSE before 0.322217171589
MSE after 1.97420385718e-18

In [3]:
for input_ in [[0,0],[0,1],[1,0],[1,1]]:
    print int(round(abs(N.activate(input_))))


0
1
1
0

In [ ]: