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();
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.
To build the demo, run:
cargo build --example helloworld --verbose
then to run the compiled file:
./target/debug/examples/helloworld
Install Rust 1.x and run:
cargo test
- Afshin Mehrabani ([email protected])
- Addtheice https://github.com/addtheice
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