An open API service indexing awesome lists of open source software.

https://github.com/djugei/dumbnet

a no_std neural network
https://github.com/djugei/dumbnet

artificial-neural-networks knn no-std rust

Last synced: 2 months ago
JSON representation

a no_std neural network

Awesome Lists containing this project

README

          

# DumbNet

A Neural Network library that does not make use of allocations or the standard library at all.
It does all its work on the stack.

This has some advantages:

## Embedded
Embedded devices without any operating system are now able to run at least simple neural
networks.

## Compile-Time checks
Since the whole network layout needs to be known at compile time the dimensions of inputs and
outputs are checked.

## Easy to get started
No need for OpenCL or CUDA, it just runs on your CPU. Or basically any other CPU for that
matter.

## Optimization
The whole network being known to the compiler might enable some optimizations. That said the
library is currently not very well optimized.

Also it was a fun challenge and actually worked out :)

Check the examples directory for some simple networks to get started.

## Plans
- [ ] a convolutional layer would be nice
- [ ] think about the library design, specifically Layer might be too coarse of a trait, sub-layers may be useful.
- [ ] unify SoftMax and other layers
- [ ] better optimization
- [ ] ! move to less horrible generics
- [ ] figure out how to use less type parameters

## 1.0 Statement
This crate will be 1.0 if it has the tools to detect handwriting and is kinda easy to use.

# Contributing
Please symlink the hooks to your local .git/hooks/ directory to run some automatic checks before committing.

ln -s ../../hooks/pre-commit .git/hooks/

Please install rustfmt and cargo-sync-readme so these checks can be run.

rustup component add rustfmt
cargo install cargo-sync-readme

Please execute `cargo-sync-readme` when you change the top-level-documentation.
Please run `cargo fmt` whenever you change code. If possible configure your editor to do so for you.