
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.
participants (1)
-
Olivier Boudry