Skip to main content

entrenar/train/trainer/
result.rs

1//! Training result types
2
3/// Result of a training run
4#[derive(Debug, Clone)]
5pub struct TrainResult {
6    /// Final epoch reached
7    pub final_epoch: usize,
8    /// Final training loss
9    pub final_loss: f32,
10    /// Best loss achieved
11    pub best_loss: f32,
12    /// Whether training was stopped early
13    pub stopped_early: bool,
14    /// Total training time in seconds
15    pub elapsed_secs: f64,
16}
17
18#[cfg(test)]
19mod tests {
20    use super::*;
21
22    #[test]
23    fn test_train_result_clone() {
24        let result = TrainResult {
25            final_epoch: 5,
26            final_loss: 0.1,
27            best_loss: 0.05,
28            stopped_early: false,
29            elapsed_secs: 10.0,
30        };
31        let cloned = result.clone();
32        assert_eq!(result.final_epoch, cloned.final_epoch);
33        assert_eq!(result.stopped_early, cloned.stopped_early);
34    }
35}