• Stars
    star
    248
  • Rank 157,972 (Top 4 %)
  • Language
    Rust
  • License
    GNU General Publi...
  • Created about 7 years ago
  • Updated over 6 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Neural Network in Rust

Juggernaut Build Status Coverage Status

Juggernaut is an experimental Neural Network written in Rust

Juggernaut

Demo

Juggernaut Demo

Example

Want to setup a simple network using Juggernaut?

This sample creates a random binary operation network with one hidden layer:

fn main() {
    let dataset = vec![
        Sample::new(vec![0f64, 0f64, 1f64], vec![0f64]),
        Sample::new(vec![0f64, 1f64, 1f64], vec![0f64]),
        Sample::new(vec![1f64, 0f64, 1f64], vec![1f64]),
        Sample::new(vec![1f64, 1f64, 1f64], vec![1f64])
    ];
    
    let mut test = NeuralNetwork::new();

    let sig_activation = Sigmoid::new();

    // 1st layer = 2 neurons - 3 inputs
    test.add_layer(NeuralLayer::new(2, 3, sig_activation));

    // 2nd layer = 1 neuron - 2 inputs
    test.add_layer(NeuralLayer::new(1, 2, sig_activation));

    test.error(|err| {
        println!("error({})", err.to_string());
    });

    test.train(dataset, 1000, 0.1f64);
    
    let think = test.evaluate(Sample::predict(vec![1f64, 0f64, 1f64]));

    println!("Evaluate [1, 0, 1] = {:?}", think.get(0, 0));

}

and the output of think is the prediction of the network after training.

Documentation

https://docs.rs/juggernaut

Build

To build the demo, run:

cargo build --example helloworld --verbose

then to run the compiled file:

./target/debug/examples/helloworld

Test

Install Rust 1.x and run:

cargo test

Authors

and contributors

FAQ

Contributing

Fork the project and send PRs + unit tests for that specific part.

"Juggernaut"?

Juggernaut is a Dota2 hero and I like this hero. Juggernaut is a powerful hero, when he has enough farm.

License

GNU General Public License v3.0