1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
//! Trainer abstraction for training loops
//!
//! This module provides a high-level `Trainer` that orchestrates the training loop,
//! including:
//! - Single training steps
//! - Epoch-level training
//! - Multi-epoch training with callbacks
//! - Validation
//! - Gradient accumulation
//!
//! # Example
//!
//! ```no_run
//! use entrenar::train::{Trainer, TrainConfig, Batch, MSELoss, EarlyStopping};
//! use entrenar::optim::Adam;
//! use entrenar::Tensor;
//!
//! // Setup
//! let params = vec![Tensor::zeros(10, true)];
//! let optimizer = Adam::new(0.001, 0.9, 0.999, 1e-8);
//! let config = TrainConfig::default();
//!
//! let mut trainer = Trainer::new(params, Box::new(optimizer), config);
//! trainer.set_loss(Box::new(MSELoss));
//! trainer.add_callback(EarlyStopping::new(5, 0.001));
//!
//! // Training with callbacks
//! // let result = trainer.train(10, || batches.clone(), |x| x.clone());
//! ```
pub use Trainer;
pub use TrainResult;