[SciPy-user] ffnet 0.6 released

Marek Wojciechowski mwojc@p.lodz...
Sat Mar 24 07:00:42 CDT 2007


Hallo scipy users!
I'd like to announce new release of ffnet (feed-forward neural network for 
python). Project depends heavily on scipy/numpy, it's written partially in 
fortran and wrapped with f2py. Below i'm pasting original announce message 
posted to comp.lang.python.announce:

ffnet version 0.6 is now released. Source packages, 
Gentoo ebuilds and Windows binaries are now available 
for download at:

    http://ffnet.sourceforge.net

The last public release was 0.5.

If you are unfamiliar with this package, see the end of
this message for a description.

NEW FEATURES
    - trained network can be now exported to fortran source
      code and compiled
    - added new architecture generator (imlgraph)
    - added rprop training algorithm
    - added draft network plotting facility (based on networkx 
      and matplotlib)

CHANGES & BUG FIXES
    - fixed bug preventing ffnet form working with networkx-0.33
    - training data can be now numpy arrays
    - ffnet became a package now, but API should be compatibile 
      with previous version

DOCUMENTATION
    - docstrings of all objects have been improved
    - docs (automatically generated with epydoc) are avilable
      online and have been included to source distribution


What is ffnet?
--------------
ffnet is a fast and easy-to-use feed-forward neural
network training solution for python.

Unique features
---------------
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.
   
Performance
-----------
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 from many
programming languages.

Usage
-----
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)
    savenet(net, "xor.net")
    exportnet(net, "xor.f")
    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
at http://ffnet.sourceforge.net.


More information about the SciPy-user mailing list