training/
training.rs

1use tiny_ml::prelude::*;
2
3fn main() {
4    // create a neural network
5    let mut net = NeuralNetwork::new().add_layer(1, ActivationFunction::Linear);
6
7    // create training data
8    let mut inputs = vec![];
9    let mut outputs = vec![];
10    for i in -50..50 {
11        inputs.push([i as f32]);
12        outputs.push([i as f32 * 3.0]);
13    }
14    let data = DataSet { inputs, outputs };
15
16    let trainer = BasicTrainer::new(data);
17
18    // train the model
19    for _ in 0..10 {
20        trainer.train(&mut net, 10);
21        // lower is better
22        println!("{}", trainer.get_total_error(&net))
23    }
24
25    // show that this actually works!
26    println!("########");
27    for i in -5..5 {
28        println!("{}", &net.run(&[i as f32 + 0.5])[0]);
29    }
30}