Neural Network in Rust
Switch branches/tags
Clone or download
Latest commit 4a08463 Nov 6, 2017

README.md

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