pub trait Optimizer<I: Scalar>: 'static { // Required method fn optimize( &mut self, weights: Matrix<I>, gradient: Matrix<I>, step: usize, ) -> Matrix<I>; }