Skip to content

A very simple feed-forward neural network library in Rust.

License

Notifications You must be signed in to change notification settings

Callum-Irving/ffnn

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

49 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ffnn - a very simple feedforward neural network library

CI2 Crate Docs License

Not useful yet, still a WIP.

Getting started

Create a network using the NetBuilder struct:

use ffnn::NetBuilder;
use ffnn::activations::RELU;

let net = NetBuilder::new(3).layer(2, RELU).init();

Predict on a set of inputs using Network::predict:

use nalgbebra::dvector;

net.predict(dvector![0.0, 0.0, 0.0]);

TODO

  • Add documentation
  • Backward propagation
  • Batched backprop
  • Adam optimizer
  • Softmax activation
  • Dropout
  • Genetic algorithm utils?
  • Multiple cost functions
    • Binary cross entropy
    • Categorical cross entropy
    • Mean squared error
  • Maybe multiple optimization methods (not just gradient descent)
  • Thread pool to increase performance
  • Use GPU

Create some examples

  • MNIST digits
  • XOR function
  • Sine wave

Done

  • Forward propagation
  • Add bias nodes
  • Move initialization to the builder
  • Multiple activation functions

References

About

A very simple feed-forward neural network library in Rust.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages