OptimizerTrait

Trait OptimizerTrait 

Source
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§

Source

fn name(&self) -> &str

Get optimizer name

Source

fn step( &mut self, params: &mut [Array<A, D>], grads: &[Array<A, D>], ) -> Result<()>

Perform optimization step

Source

fn learning_rate(&self) -> A

Get current learning rate

Source

fn set_learning_rate(&mut self, lr: A)

Set learning rate

Source

fn get_state(&self) -> HashMap<String, Vec<u8>>

Get optimizer state for serialization

Source

fn set_state(&mut self, state: HashMap<String, Vec<u8>>) -> Result<()>

Set optimizer state from serialization

Source

fn clone_optimizer(&self) -> Box<dyn OptimizerTrait<A, D>>

Clone the optimizer

Implementors§