MCPcopy Create free account
hub / github.com/daniel-e/rustml / test_feedforward

Function test_feedforward

src/nn.rs:372–409  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

370
371 #[test]
372 fn test_feedforward() {
373
374 // parameters
375 let params1 = mat![
376 0.1, 0.2, 0.4;
377 0.2, 0.1, 2.0
378 ];
379
380 let params2 = mat![
381 0.8, 1.2, 0.6;
382 0.4, 0.5, 0.8;
383 1.4, 1.5, 2.0
384 ];
385
386 let n = NeuralNetwork::new()
387 .add_layer(3)
388 .add_layer(2)
389 .add_layer(3)
390 .set_params(0, params1)
391 .set_params(1, params2);
392
393 let (a, z) = n.feedforward(&[0.5, 1.2, 1.5]);
394
395 assert_eq!(a.len(), 3);
396 assert_eq!(z.len(), 3);
397 assert_eq!(z[0], vec![0.5, 1.2, 1.5]);
398 assert_eq!(a[0], vec![0.5, 1.2, 1.5]);
399 assert!(z[1].similar(&vec![0.89, 3.22], 0.001));
400 assert!(a[1].similar(&vec![1.0, 0.70889, 0.96158], 0.00001));
401 assert!(z[2].similar(&vec![2.2276, 1.5237, 4.3865], 0.0001));
402 assert!(a[2].similar(&vec![0.90270, 0.82108, 0.98771], 0.00001));
403
404 let d = n.backprop(&a[2].clone(), &[2.7, 3.1, 1.5], &(a, z));
405 assert!(d[0].similar(&vec![-0.1578584, -0.3347843, -0.0062193], 0.0000002));
406 assert!(d[1].similar(&vec![-0.075561, -0.013853], 0.000002));
407
408 // TODO: test a 4 layer network
409 }
410
411
412 #[test]

Callers

nothing calls this directly

Calls 4

set_paramsMethod · 0.80
add_layerMethod · 0.80
feedforwardMethod · 0.80
backpropMethod · 0.80

Tested by

no test coverage detected