ffnet 0.6.1 released
mwojc at p.lodz.pl
Wed Oct 24 13:11:14 CEST 2007
ffnet version 0.6.1 is released! Source packages,
Gentoo ebuilds and Windows binaries are available
for download at:
If you are unfamiliar with this package, see the end of
this message for a description.
This is mainly bugfix release.
- added 'readdata' function (simplifies reading training data
from ASCII files)
CHANGES & BUG FIXES
- fixed bug preventing ffnet form working with scipy-0.6.0,
- importing ffnet doesn't need matplotlib now (really),
- corrections in fortran code generators
What is ffnet?
ffnet is a fast and easy-to-use feed-forward neural
network training solution for python.
1. Any network connectivity without cycles is allowed.
2. Training can be performed with use of several optimization
schemes including: standard backpropagation with momentum, rprop,
conjugate gradient, bfgs, tnc, genetic alorithm based optimization.
3. There is access to exact partial derivatives of network outputs
vs. its inputs.
4. Automatic normalization of data.
Basic assumptions and limitations:
1. Network has feed-forward architecture.
2. Input units have identity activation function,
all other units have sigmoid activation function.
3. Provided data are automatically normalized, both input and output,
with a linear mapping to the range (0.15, 0.85).
Each input and output is treated separately (i.e. linear map is
unique for each input and output).
4. Function minimized during training is a sum of squared errors
of each output for each training pattern.
Excellent computational performance is achieved implementing core
functions in fortran 77 and wrapping them with f2py. ffnet outstands
in performance pure python training packages and is competitive to
'compiled language' software. Moreover, a trained network can be
exported to fortran sources, compiled and called in many
Basic usage of the package is outlined below:
from ffnet import ffnet, mlgraph, savenet, loadnet, exportnet
conec = mlgraph( (2,2,1) )
net = ffnet(conec)
input = [ [0.,0.], [0.,1.], [1.,0.], [1.,1.] ]
target = [ [1.], [0.], [0.], [1.] ]
net.train_tnc(input, target, maxfun = 1000)
net.test(input, target, iprint = 2)
net = loadnet("xor.net")
answer = net( [ 0., 0. ] )
partial_derivatives = net.derivative( [ 0., 0. ] )
Usage examples with full description can be found in
examples directory of the source distribution or browsed
More information about the Python-announce-list