Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/laurentpayot/graia
An *experimental* neural network library.
https://github.com/laurentpayot/graia
ai futhark jupyter-notebook neural-network
Last synced: 4 days ago
JSON representation
An *experimental* neural network library.
- Host: GitHub
- URL: https://github.com/laurentpayot/graia
- Owner: laurentpayot
- License: mit
- Created: 2024-03-02T08:21:04.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2024-10-30T00:01:29.000Z (17 days ago)
- Last Synced: 2024-10-30T00:44:47.519Z (17 days ago)
- Topics: ai, futhark, jupyter-notebook, neural-network
- Language: Jupyter Notebook
- Homepage: https://huggingface.co/spaces/LaurentPayot/Graia
- Size: 19.2 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ๐ Graia
An *experimental* neural network library.
## Goals
- *Not* using a retropropagation algorithm for training. Retropropagation works pretty well but the main goal of this project is to find a *biologically plausible* training algorithm that would work using only the information available *locally* to the nodes. Current status: **Work In Progress** ๐ฉโ๐ป (70% accuracy for now). ![Learning curves](learning.png)
- Python API similar to [TensorFlow](https://www.tensorflow.org/).Graiaโs core is written in [Futhark](https://futhark-lang.org/) to leverage OpenCL for GPU acceleration.
## Online Demo
For Graia to be usable, youโll have to use it locally with a GPA as described below.
## Prerequisites
To build Graia on a Debian/Ubuntu system, you need:
- [Futhark](https://futhark.readthedocs.io/en/stable/installation.html#installing-from-a-precompiled-snapshot)
- [Futhark FFI](https://github.com/pepijndevos/futhark-pycffi) `pip install futhark-ffi`
- OpenCL
- Native GPU drivers are prefered but if no OpenCL device is listed with `clinfo -l` you can install `pocl-opencl-icd` (slower and sometimes buggy).
- If missing *CL/cl.h* error, install `opencl-headers`.
- If missing *-lOpenCL* error, create an OpenCL link: `sudo ln -s /usr/lib/x86_64-linux-gnu/libOpenCL.so.1 /usr/lib/libOpenCL.so`.Then simply run `make` to test and compile the Futhark files to the OpenCL library used by the `Graia` Python class.
## Jupyter Notebooks
To be sure to have all the Python packages needed, [Anaconda](https://docs.anaconda.com/free/anaconda/install/linux/) is highly recommended.
- Install [Futhark FFI](https://github.com/pepijndevos/futhark-pycffi): `pip install futhark-ffi`.
- As mentioned above, Native GPU drivers are prefered but if they donโt work you can Install [PoCL](http://portablecl.org/):`conda install conda-forge::pocl`.## TODO
- implement real boolean values instead of infinite relu slope
- Save/load model https://documen.tician.de/pyopencl/array.html#pyopencl.array.Array.get then https://numpy.org/devdocs/reference/generated/numpy.save.html
- More Futhark tests