ferrite-dl 0.2.0

Deep learning library written in pure Rust
Documentation
use ferrite::prelude::*;
use ndarray::prelude::*;


fn main() {
  let mut model = Layer::Sequential::new(vec![
    layer!(Linear::new(3, 4, false, Device::Cpu)),
    layer!(Linear::new(4, 2, false, Device::Cpu))
  ]);

  let loss_fn = Loss::MSELoss::new("mean");
  let optimizer = Optimizer::SGD::new(model.parameters(), 0.01, 0.0);


  let input = Tensor::from_ndarray(&array![[1.,2.,3.], [4.,4.,4.]], Device::Cpu, Some(true));
  let output = model.forward(&input);
  
  let ground_y = Tensor::from_ndarray(&array![[30.,30.], [50.,50.]], Device::Cpu, Some(false));

  let mut f = loss_fn.loss(&output, &ground_y);

  f.backward();

  optimizer.step();

  model.print_parameters(true);
}