juggernaut 0.3.0

Neural Network in Rust

Juggernaut Build Status

Juggernaut is an experimental Neural Network written in Rust


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(dataset, Sigmoid::new());

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

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

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

    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.


To build the demo, run:

cargo build --example helloworld --verbose

then to run the compiled file:



Install Rust 1.x and run:

cargo test


Afshin Mehrabani (afshin.meh@gmail.com) and contributors



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


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


GNU General Public License v3.0