Skip to main content

entrenar/generative/code_gan/gan/
stats.rs

1//! Statistics tracking for GAN training.
2
3use std::collections::VecDeque;
4
5/// Statistics from GAN training
6#[derive(Debug, Clone)]
7pub struct CodeGanStats {
8    /// Total training steps
9    pub steps: usize,
10    /// Generator losses (recent history)
11    pub gen_losses: VecDeque<f32>,
12    /// Discriminator losses (recent history)
13    pub disc_losses: VecDeque<f32>,
14    /// Mode collapse score (0 = no collapse, 1 = full collapse)
15    pub mode_collapse_score: f32,
16    /// Number of unique tokens generated in last batch
17    pub unique_tokens: usize,
18}
19
20impl Default for CodeGanStats {
21    fn default() -> Self {
22        Self {
23            steps: 0,
24            gen_losses: VecDeque::with_capacity(100),
25            disc_losses: VecDeque::with_capacity(100),
26            mode_collapse_score: 0.0,
27            unique_tokens: 0,
28        }
29    }
30}