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
- Host: GitHub
- URL: https://github.com/djugei/dumbnet
- Owner: djugei
- Created: 2019-12-09T12:33:07.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2019-12-26T15:30:56.000Z (almost 6 years ago)
- Last Synced: 2025-06-16T00:54:06.633Z (4 months ago)
- Topics: artificial-neural-networks, knn, no-std, rust
- Language: Rust
- Size: 39.1 KB
- Stars: 22
- Watchers: 2
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
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-readmePlease 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.