Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/pierric/neural-network
Neural network framework in Haskell
https://github.com/pierric/neural-network
haskell neural-network
Last synced: 2 months ago
JSON representation
Neural network framework in Haskell
- Host: GitHub
- URL: https://github.com/pierric/neural-network
- Owner: pierric
- License: bsd-3-clause
- Created: 2016-11-28T10:25:22.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2017-10-22T09:20:12.000Z (about 7 years ago)
- Last Synced: 2024-10-28T14:18:44.388Z (3 months ago)
- Topics: haskell, neural-network
- Language: Haskell
- Size: 279 KB
- Stars: 5
- Watchers: 4
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# neural-network
Neural network framework in Haskell## Packages included
- **Base**. This package defines the abstract neural-network, and a extendable
specification of layers.
- **Backend-hmatrix**. This package implements the full-connect layer and convolution
layer based on hmatrix library. It has a simple and plain representation but some issues
in both time and space efficiency.
- **Backend-blashs**. This package implements the full-connect layer and convolution
layer based on blas-hs library. A imperative interface for manipulating dense vector
and matrix is devised for better storage utilization.## Build with stack tool
- Please see https://docs.haskellstack.org/en/stable/README/## Additional notes on build
### Linux
- with *openblas* flag true in the flags section, please install the openblas by the official package management.
- or else, install blas/lapack package.### Windows
- Download OpenBLAS from http://www.openblas.net/
- Modify the following fields in the stack.yaml
- *extra-include-dirs:* path-to-include-dir-of-openblas
- *extra-lib-dirs:* path-to-lib-dir-of-openblas### Utilizing SIMD
- The *vec128* flag for *neural-network-blashs* can be turned on, and many operations will utilize SIMD for better performance.
```yaml
neural-network-blashs:
vec128: true
```
- The flags *vec256* and *vec512* cause segment-fault for the moment.- A known bug on windows. *vec128* implies compiler option **-fllvm** for ghc. However due to a known bug of binutils on mingw-w64, this option leads to a segment fault
- mingw-w64-x86_64-binutils < 2.27-2
- ghc <= 8.0.1 (because it is bundled with old binutils)
- stack resolver <= lts-7.14 (because it imples ghc <= 8.0.1)
- See bug report here https://ghc.haskell.org/trac/ghc/ticket/8974