# neural: Neural Networks in native Haskell

The goal of `neural`

is to provide a modular and flexible neural network library written in native Haskell.

Features include

*composability*via arrow-like instances and pipes,*automatic differentiation*for automatic gradient descent/ backpropagation training (using Edward Kmett's fabulous ad library).

The idea is to be able to easily define new components and wire them up in flexible, possibly complicated ways (convolutional deep networks etc.).

Four examples are included as proof of concept:

A simple neural network that approximates the sine function on [0,2 pi].

Another simple neural network that approximates the sqrt function on [0,4].

A slightly more complicated neural network that solves the famous Iris flower problem.

A first (still simple) neural network for recognizing handwritten digits from the equally famous MNIST database.

The library is still very much experimental at this point.

[Skip to Readme]

## Modules

*Data*- Data.FixedSize
- Data.FixedSize.Class
- Data.FixedSize.Matrix
- Data.FixedSize.Vector
- Data.FixedSize.Volume

- Data.MyPrelude
- Data.Utils
- Data.Utils.Analytic
- Data.Utils.Arrow
- Data.Utils.Cache
- Data.Utils.List
- Data.Utils.Pipes
- Data.Utils.Random
- Data.Utils.Stack
- Data.Utils.Statistics
- Data.Utils.Traversable

- Data.FixedSize
*Numeric*- Numeric.Neural
- Numeric.Neural.Convolution
- Numeric.Neural.Layer
- Numeric.Neural.Model
- Numeric.Neural.Normalization
- Numeric.Neural.Pipes

- Numeric.Neural

## Downloads

- neural-0.3.0.1.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)