pub trait Optimizer: Summary {
// Required methods
fn update_params(
&mut self,
layers: &mut Vec<Layer<'_>>,
nabla_bs: &Vec<Array2<f64>>,
nabla_ws: &Vec<Array2<f64>>,
);
fn initialize(&mut self, layers: &Vec<Layer<'_>>);
fn pre_update(&mut self);
fn post_update(&mut self);
}