This project is build around nn_lib which is a very basic 'from scratch' neural network library, and serve as an entrypoint for a school project, which was to solve the mnist dataset.
There are two mode, benchmark
and gui
, the first one give metrics and loss for either mnist or xor, and the second one is a drawing GUI around the mnist dataset.
Before we decided to improve the neural network library by adding more features, this was a school project, you check out the report (pdf format) we wrote explaining the basic structure of the library and the maths behind our implementation. The latex sources of the report are also available
Launch the mnist gui with data augmentation:
RUST_LOG=trace cargo run --release -- gui --augment
A simple neural network library written in rust
Usage: nn_from_scratch <COMMAND>
Commands:
gui Run in GUI mode
benchmark Run benchmarks
help Print this message or the help of the given subcommand(s)
Options:
-h, --help Print help
-V, --version Print version
The project can be run to benchmark the network performances, see the help command
Run benchmarks
Usage: nn_from_scratch benchmark [OPTIONS]
Options:
-r, --run <RUN> [default: xor] [possible values: mnist, xor]
-e, --epochs <EPOCHS>
-n, --net-type <NET_TYPE> [default: mlp] [possible values: mlp, conv]
-h, --help Print help
You can also play with an interactive gui for the mnist exemple, drawing your own number and see what the trained model guess.
Run in GUI mode
Usage: nn_from_scratch gui [OPTIONS]
Options:
-a, --augment
-h, --help Print help