1use vexus::{NeuralNetwork, Sigmoid};
2
3fn main() {
4 let mut nn = NeuralNetwork::new(vec![2, 4, 1], 0.1, Box::new(Sigmoid));
6
7 let training_data = vec![
9 (vec![0.0, 0.0], vec![0.0]),
10 (vec![0.0, 1.0], vec![1.0]),
11 (vec![1.0, 0.0], vec![1.0]),
12 (vec![1.0, 1.0], vec![0.0]),
13 ];
14
15 for _ in 0..1000000 {
17 for (inputs, expected) in &training_data {
18 let _outputs = nn.forward(inputs);
19 nn.backpropagate(expected);
20 }
21 }
22
23 for (inputs, expected) in &training_data {
25 let outputs = nn.forward(inputs);
26 println!(
27 "Input: {:?}, Expected: {:?}, Got: {:.4}",
28 inputs, expected[0], outputs[0]
29 );
30 }
31}