pub trait OptimizerTrait<A: Float + ScalarOperand + Debug, D: Dimension>: Send + Sync {
// Required methods
fn name(&self) -> &str;
fn step(
&mut self,
params: &mut [Array<A, D>],
grads: &[Array<A, D>],
) -> Result<()>;
fn learning_rate(&self) -> A;
fn set_learning_rate(&mut self, lr: A);
fn get_state(&self) -> HashMap<String, Vec<u8>>;
fn set_state(&mut self, state: HashMap<String, Vec<u8>>) -> Result<()>;
fn clone_optimizer(&self) -> Box<dyn OptimizerTrait<A, D>>;
}Expand description
Trait for optimizer implementations that can be used with self-tuning
Required Methods§
Sourcefn step(
&mut self,
params: &mut [Array<A, D>],
grads: &[Array<A, D>],
) -> Result<()>
fn step( &mut self, params: &mut [Array<A, D>], grads: &[Array<A, D>], ) -> Result<()>
Perform optimization step
Sourcefn learning_rate(&self) -> A
fn learning_rate(&self) -> A
Get current learning rate
Sourcefn set_learning_rate(&mut self, lr: A)
fn set_learning_rate(&mut self, lr: A)
Set learning rate
Sourcefn set_state(&mut self, state: HashMap<String, Vec<u8>>) -> Result<()>
fn set_state(&mut self, state: HashMap<String, Vec<u8>>) -> Result<()>
Set optimizer state from serialization
Sourcefn clone_optimizer(&self) -> Box<dyn OptimizerTrait<A, D>>
fn clone_optimizer(&self) -> Box<dyn OptimizerTrait<A, D>>
Clone the optimizer