#[non_exhaustive]
#[derive(Debug, Clone)]
pub struct LatentOdeConfig {
pub latent_dim: usize,
pub hidden_dim: usize,
pub n_layers: usize,
pub recognition_steps: usize,
pub rtol: f64,
pub atol: f64,
pub learning_rate: f64,
}
impl Default for LatentOdeConfig {
fn default() -> Self {
Self {
latent_dim: 16,
hidden_dim: 64,
n_layers: 2,
recognition_steps: 10,
rtol: 1e-3,
atol: 1e-4,
learning_rate: 1e-3,
}
}
}
#[derive(Debug, Clone)]
pub struct LatentOdeResult {
pub predicted_times: Vec<f64>,
pub predicted_values: Vec<Vec<f64>>,
pub latent_trajectory: Vec<Vec<f64>>,
pub reconstruction_loss: f64,
pub kl_divergence: f64,
}