Introduction

NeuroLab - a library of basic nueral networks algorithms with flexible network configurations and learning algorithms. To simplify migration, the syntax of the library is as close to a package of Neural Network Toolbox (NNT) of MATLAB (c). The library is based on the package numpy (http://numpy.scipy.org), some learning algorithms are used scipy.optymyze (http://scipy.org).

Create network:
>>> import neurolab as nl
>>> # create feed forward multilayer perceptron
>>> net = nl.net.newff([[0, 0.5], [0, 0.5]], [3,1])

Created two-layer network(3-1) with 2-inputs and one output. Input layer contains 3 neurons, the output 1 neuron. Input range: 0.0, 0.5

Train:
>>> # Create learning samples
>>> input = [[0.1, 0.1],
...          [0.1, 0.2],
...          [0.1, 0.3],
...          [0.1, 0.4],
...          [0.2, 0.2],
...          [0.2, 0.3],
...          [0.2, 0.4],
...          [0.3, 0.3],
...          [0.3, 0.4],
...          [0.4, 0.4]]
>>>
>>> target = [[i[0] + i[1]] for i in input]
>>> # Train
>>> error = net.train(input, target, epochs=500, goal=0.1)
Train error:
>>> print "Finish error:", error[-1]
Finish error: 0.125232586274
Simulate:
>>> net.sim([[0.1, 0.5], [0.3, 0. 1]])
array([[ 0.59650825],
   [ 0.41686071]])
Network Info:
>>> # Number of network inputs:
>>> net.ci
2
>>> # Number of network outputs:
>>> net.co
1
>>> # Number of network layers:
>>> len(net.layers)
2
>>> # Weight of first neuron of input layer (net.layers[0])
>>> net.layers[0].np['w'][1]
array([-0.67211163, -0.87277918])
>>>
>>> # Bias output layer:
>>> net.layers[-1].np['b']
array([-0.69717423])
>>> # Train params
>>> net.train.defaults
{'goal': 0.01,
 'show': 100,
 'epochs': 1000,
 'lr': 0.01,
 'adapt': False,
 'errorf': <neurolab.error.SSE instance at 0x03757EB8>}
Save/Load:
>>> net.save('sum.net')
>>> newnet = nl.load('sum.net')
Change train function:
 
>>> net.trainf = nl.train.TrainCG()
>>> # Change error function:
>>> net.trainf.defaunts['trainf'] = nl.error.SAE()
Change transfer function on output layer:
 
>>> net.layers[-1].transf = nl.trans.HardLim()

Previous topic

Welcome to NeuroLab’s documentation!

Next topic

Library

This Page