← Back

Module train

struct TrainConfig

Source: train.joule:28

fn default() -> Self

Source: train.joule:76

struct MixedPrecisionConfig

Source: train.joule:99

fn default() -> Self

Source: train.joule:107

enum EnergyMode

Source: train.joule:119

struct LoggingConfig

Source: train.joule:132

fn default() -> Self

Source: train.joule:142

struct CheckpointConfig

Source: train.joule:156

fn default() -> Self

Source: train.joule:167

struct EarlyStoppingConfig

Source: train.joule:182

fn default() -> Self

Source: train.joule:190

struct TrainState

Source: train.joule:206

fn new() -> Self

Source: train.joule:216

struct TrainMetrics

Source: train.joule:234

fn new() -> Self

Source: train.joule:264

fn compute_derived(&mut self, batch_size: usize)

Compute derived metrics

Source: train.joule:279

fn summary(&self) -> String

Summary string

Source: train.joule:288

struct Trainer

Energy-aware trainer

Source: train.joule:309

fn new(model: M, optimizer: O, loss_fn: L, config: TrainConfig) -> Self

Create new trainer

Source: train.joule:351

fn add_callback(&mut self, callback: Box<dyn TrainCallback>)

Add callback

Source: train.joule:385

fn model(&self) -> &M

Get model reference

Source: train.joule:390

fn model_mut(&mut self) -> &mut M

Get mutable model reference

Source: train.joule:395

fn state(&self) -> &TrainState

Get training state

Source: train.joule:400

fn train<D>(&mut self, train_data: DataLoader<D, DefaultCollate>, val_data: Option<DataLoader<D, DefaultCollate>>) -> TrainResult

Source: train.joule:406

fn train_epoch<D>(&mut self, data_loader: &DataLoader<D, DefaultCollate>) -> Result<TrainMetrics, TrainError>

Train one epoch

Source: train.joule:527

fn train_step(&mut self, inputs: &Tensor, targets: &Tensor) -> Result<TrainMetrics, TrainError>

Execute one training step

Source: train.joule:606

fn validate<D>(&mut self, data_loader: &DataLoader<D, DefaultCollate>) -> Result<TrainMetrics, TrainError>

Validate on dataset

Source: train.joule:677

fn clip_gradients(&mut self, max_norm: f64)

Clip gradients by norm

Source: train.joule:739

fn unscale_gradients(&mut self)

Unscale gradients for mixed precision

Source: train.joule:764

fn throttle_training(&mut self)

Throttle training for energy efficiency

Source: train.joule:775

fn save_checkpoint(&mut self, metric: Option<f64>)

Save checkpoint

Source: train.joule:785

fn energy_report(&self) -> EnergyReport

Get energy report

Source: train.joule:801

struct TrainResult

Source: train.joule:812

fn new() -> Self

Source: train.joule:822

fn best_val_loss(&self) -> Option<f64>

Best validation loss

Source: train.joule:834

fn epochs_trained(&self) -> usize

Total epochs trained

Source: train.joule:844

fn avg_energy_per_epoch(&self) -> Joules

Average energy per epoch

Source: train.joule:849

fn print_summary(&self)

Print summary

Source: train.joule:858

enum StopReason

Source: train.joule:882

enum TrainError

Source: train.joule:892

trait TrainCallback

Training callback trait

Source: train.joule:906

fn on_train_begin(&mut self, _config: &TrainConfig, _state: &TrainState)

Source: train.joule:907

fn on_train_end(&mut self, _result: &TrainResult)

Source: train.joule:908

fn on_epoch_begin(&mut self, _epoch: u32)

Source: train.joule:909

fn on_epoch_end(&mut self, _epoch: u32, _metrics: &TrainMetrics)

Source: train.joule:910

fn on_step_begin(&mut self, _step: u64)

Source: train.joule:911

fn on_step_end(&mut self, _step: u64, _metrics: &TrainMetrics)

Source: train.joule:912

fn on_validation_begin(&mut self)

Source: train.joule:913

fn on_validation_end(&mut self, _metrics: &TrainMetrics)

Source: train.joule:914

struct EnergyLoggerCallback

Energy logging callback

Source: train.joule:918

struct EnergyLogEntry

Source: train.joule:924

fn new(log_path: &str) -> Self

Source: train.joule:933

fn on_step_end(&mut self, step: u64, metrics: &TrainMetrics)

Source: train.joule:942

fn on_train_end(&mut self, _result: &TrainResult)

Source: train.joule:952

struct PowerLimitCallback

Power limit callback (throttles when exceeding power budget)

Source: train.joule:971

fn new(power_limit: Watts, window_size: usize) -> Self

Source: train.joule:978

fn on_step_end(&mut self, _step: u64, metrics: &TrainMetrics)

Source: train.joule:988

fn train_simple<M, D, L>(

Source: train.joule:1013

fn gradient_norm<M: Module>(model: &M) -> f64

Compute gradient norm

Source: train.joule:1069

fn count_parameters<M: Module>(model: &M) -> usize

Count trainable parameters

Source: train.joule:1080

fn estimate_training_memory(

Estimate memory usage for training

Source: train.joule:1085

fn estimate_training_energy(

Estimate energy for training run

Source: train.joule:1105