← Back

Module optim

trait Optimizer

Optimizer trait

Source: optim.joule:10

fn step(&mut self);

Perform optimization step

Source: optim.joule:12

fn zero_grad(&mut self);

Zero all parameter gradients

Source: optim.joule:15

fn get_lr(&self) -> f64;

Get current learning rate

Source: optim.joule:18

fn set_lr(&mut self, lr: f64);

Set learning rate

Source: optim.joule:21

fn state_dict(&self) -> HashMap<String, Tensor>;

Get state dict for checkpointing

Source: optim.joule:24

fn load_state_dict(&mut self, state: &HashMap<String, Tensor>);

Load state dict

Source: optim.joule:27

struct ParamGroup

Source: optim.joule:32

struct SGD

Stochastic Gradient Descent with momentum

Source: optim.joule:43

fn new(

Create new SGD optimizer

Source: optim.joule:54

fn simple(params: Vec<&mut Tensor>, lr: f64) -> Self

Create with simple parameters

Source: optim.joule:81

fn with_momentum(params: Vec<&mut Tensor>, lr: f64, momentum: f64) -> Self

Create with momentum

Source: optim.joule:86

fn step(&mut self)

Source: optim.joule:93

fn zero_grad(&mut self)

Source: optim.joule:137

fn get_lr(&self) -> f64

Source: optim.joule:146

fn set_lr(&mut self, lr: f64)

Source: optim.joule:150

fn state_dict(&self) -> HashMap<String, Tensor>

Source: optim.joule:156

fn load_state_dict(&mut self, state: &HashMap<String, Tensor>)

Source: optim.joule:164

struct Adam

Adam optimizer (Adaptive Moment Estimation)

Source: optim.joule:180

fn new(

Create new Adam optimizer

Source: optim.joule:193

fn default(params: Vec<&mut Tensor>, lr: f64) -> Self

Create with default parameters

Source: optim.joule:222

fn step(&mut self)

Source: optim.joule:229

fn zero_grad(&mut self)

Source: optim.joule:280

fn get_lr(&self) -> f64

Source: optim.joule:289

fn set_lr(&mut self, lr: f64)

Source: optim.joule:293

fn state_dict(&self) -> HashMap<String, Tensor>

Source: optim.joule:299

fn load_state_dict(&mut self, state: &HashMap<String, Tensor>)

Source: optim.joule:315

struct AdamW

AdamW optimizer (Adam with decoupled weight decay)

Source: optim.joule:339

fn new(

Create new AdamW optimizer

Source: optim.joule:345

fn default(params: Vec<&mut Tensor>, lr: f64) -> Self

Create with default parameters

Source: optim.joule:358

fn step(&mut self)

Source: optim.joule:364

fn zero_grad(&mut self)

Source: optim.joule:365

fn get_lr(&self) -> f64

Source: optim.joule:366

fn set_lr(&mut self, lr: f64)

Source: optim.joule:367

fn state_dict(&self) -> HashMap<String, Tensor>

Source: optim.joule:368

fn load_state_dict(&mut self, state: &HashMap<String, Tensor>)

Source: optim.joule:369

struct RMSprop

RMSprop optimizer

Source: optim.joule:377

fn new(

Create new RMSprop optimizer

Source: optim.joule:391

fn default(params: Vec<&mut Tensor>, lr: f64) -> Self

Create with default parameters

Source: optim.joule:422

fn step(&mut self)

Source: optim.joule:429

fn zero_grad(&mut self)

Source: optim.joule:480

fn get_lr(&self) -> f64

Source: optim.joule:489

fn set_lr(&mut self, lr: f64)

Source: optim.joule:493

fn state_dict(&self) -> HashMap<String, Tensor>

Source: optim.joule:499

fn load_state_dict(&mut self, state: &HashMap<String, Tensor>)

Source: optim.joule:507

struct Adagrad

Adagrad optimizer

Source: optim.joule:523

fn new(

Create new Adagrad optimizer

Source: optim.joule:534

fn default(params: Vec<&mut Tensor>, lr: f64) -> Self

Create with default parameters

Source: optim.joule:561

fn step(&mut self)

Source: optim.joule:568

fn zero_grad(&mut self)

Source: optim.joule:605

fn get_lr(&self) -> f64

Source: optim.joule:614

fn set_lr(&mut self, lr: f64)

Source: optim.joule:618

fn state_dict(&self) -> HashMap<String, Tensor>

Source: optim.joule:624

fn load_state_dict(&mut self, state: &HashMap<String, Tensor>)

Source: optim.joule:632

struct LBFGS

Limited-memory BFGS optimizer

Source: optim.joule:648

fn new(

Create new LBFGS optimizer

Source: optim.joule:665

fn default(params: Vec<&mut Tensor>, lr: f64) -> Self

Create with default parameters

Source: optim.joule:696

fn step(&mut self)

Source: optim.joule:703

fn zero_grad(&mut self)

Source: optim.joule:720

fn get_lr(&self) -> f64

Source: optim.joule:729

fn set_lr(&mut self, lr: f64)

Source: optim.joule:733

fn state_dict(&self) -> HashMap<String, Tensor>

Source: optim.joule:739

fn load_state_dict(&mut self, _state: &HashMap<String, Tensor>)

Source: optim.joule:743

trait LRScheduler

Learning rate scheduler trait

Source: optim.joule:751

fn step(&mut self);

Update learning rate

Source: optim.joule:753

fn get_lr(&self) -> f64;

Get current learning rate

Source: optim.joule:756

fn last_epoch(&self) -> i64;

Get last epoch

Source: optim.joule:759

struct StepLR

Step learning rate scheduler

Source: optim.joule:763

fn new(optimizer: O, step_size: u64, gamma: f64) -> Self

Source: optim.joule:772

fn step(&mut self)

Source: optim.joule:785

fn get_lr(&self) -> f64

Source: optim.joule:791

fn last_epoch(&self) -> i64

Source: optim.joule:795

struct ExponentialLR

Exponential learning rate scheduler

Source: optim.joule:801

fn new(optimizer: O, gamma: f64) -> Self

Source: optim.joule:809

fn step(&mut self)

Source: optim.joule:821

fn get_lr(&self) -> f64

Source: optim.joule:827

fn last_epoch(&self) -> i64

Source: optim.joule:831

struct CosineAnnealingLR

Cosine annealing learning rate scheduler

Source: optim.joule:837

fn new(optimizer: O, t_max: u64, eta_min: f64) -> Self

Source: optim.joule:846

fn step(&mut self)

Source: optim.joule:859

fn get_lr(&self) -> f64

Source: optim.joule:870

fn last_epoch(&self) -> i64

Source: optim.joule:874

struct ReduceLROnPlateau

Reduce learning rate on plateau

Source: optim.joule:880

fn new(

Source: optim.joule:896

fn step_with_metric(&mut self, metric: f64)

Call with current metric value

Source: optim.joule:921

fn step(&mut self)

Source: optim.joule:959

fn get_lr(&self) -> f64

Source: optim.joule:963

fn last_epoch(&self) -> i64

Source: optim.joule:967

struct LinearWarmup

Warmup with linear schedule

Source: optim.joule:973

fn new(optimizer: O, warmup_steps: u64, start_lr: f64) -> Self

Source: optim.joule:982

fn step(&mut self)

Source: optim.joule:995

fn get_lr(&self) -> f64

Source: optim.joule:1005

fn last_epoch(&self) -> i64

Source: optim.joule:1009

struct WarmupCosineSchedule

Warmup + cosine decay (common in transformers)

Source: optim.joule:1015

fn new(optimizer: O, warmup_steps: u64, total_steps: u64, min_lr: f64) -> Self

Source: optim.joule:1025

fn step(&mut self)

Source: optim.joule:1039

fn get_lr(&self) -> f64

Source: optim.joule:1057

fn last_epoch(&self) -> i64

Source: optim.joule:1061