Home
Reading
Searching
Subscribe
Sponsors
Statistics
Posting
Contact
Spam
Lists
Links
About
Hosting
Filtering
Features Download
Marketing
Archives
FAQ
Blog
 
Gmane
From: Olivier Boudry <olivier.boudry <at> gmail.com>
Subject: ANNOUNCE: hfann-01
Newsgroups: gmane.comp.lang.haskell.cafe
Date: Monday 9th June 2008 15:25:22 UTC (over 9 years ago)
Hi all,

I'm pleased to announce the first release of the hfann module (
http://code.haskell.org/~oboudry/hfann/).
This module is an interface to the
"Fast Artificial Neural Network (FANN)" library (see
http://leenissen.dk/fann/).

This is an early release. At the moment the hfann module does not cover all
the functions found in the FANN library but it should be useable to train
and use simple Neural Networks. At least is can be used to run an
equivalent
of the "Getting Started" example found in
http://leenissen.dk/fann/html/files2/gettingstarted-txt.html.

The module was developped on Windows XP with GHC-6.8.2.

The README should provide you with all required information to install this
module. The haddock documentation should give enough information to get
started using it.

== Installation ==

Download version 2.0 of the FANN library from:

    http://leenissen.dk/fann/download.php

and build it according to the instruction found on:

    http://leenissen.dk/fann/html/files2/installation-txt.html

Get the hfann module

    darcs get http://code.haskell.org/~oboudry/hfann/

Build it using Cabal

    runghc Setup.lhs configure
    runghc Setup.lhs build
    runghc Setup.lhs haddock
    runghc Setup.lhs install

== Examples ==

Training an ANN to the xor function:

> import HFANN

> main = do
>   withStandardFann [2,3,1] $ \fann -> do
>     setActivationFunctionHidden fann fannSigmoidSymetric
>     setActivationFunctionOutput fann fannSigmoidSymetric

>     trainOnFile fann "xor.data" -- train data
>                      20000      -- max epochs
>                      100        -- epochs between reports
>                      0.001      -- desired error

>     saveFann fann "xor.ann"

C:\Temp\Haskell\hfann\examples\xor>Train.exe
Max epochs    20000. Desired error: 0.0010000000.
Epochs            1. Current error: 0.2503675520. Bit fail 4.
Epochs          100. Current error: 0.0181358512. Bit fail 0.
Epochs          169. Current error: 0.0009599295. Bit fail 0.


Using the trained ANN on the 4 possible input values to the xor function
(-1
= False, 1 = True).

> import HFANN

> main = do
>   withSavedFann "xor.ann" $ \fann -> do
>     mapM_ (\x -> runFann fann x >>= print) [[-1,-1],[-1,1],[1,-1],[1,1]]

C:\Temp\Haskell\hfann\examples\xor>Use.exe
[-0.950566361876292]
[0.9178714756661263]
[0.9457588340834527]
[-0.9482816646878051]

The "xor.data" training data content:
4 2 1
-1 -1
-1
-1 1
1
1 -1
1
1 1
-1

The files for this example can be found in the "examples/xor" directory

==

Bug reports, suggestions and comments are welcome. You can send them
directly to my e-mail address.

Olivier.
 
CD: 3ms