1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
pub mod adam_optimizer;
pub mod rmsprop_optimizer;
pub mod sgd_optimzer;
use ndarray::Array2;
use crate::neural_network::{layer::Layer, Summary};
pub trait Optimizer: Summary {
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);
}