mod adam;
mod lm;
mod sgd;
pub trait Optimizer {
type Output;
fn optimize<F>(
&self,
f: F,
parameters: &[f64],
data: &[&[f64]],
maxsteps: usize,
) -> Self::Output
where
F: for<'a> Fn(&[Var<'a>], &[&[f64]]) -> Var<'a>;
}
pub use self::adam::*;
pub use self::lm::*;
pub use self::sgd::*;
pub use reverse::*;