entrenar/optim/hpo/types/
trial.rs1use serde::{Deserialize, Serialize};
4use std::collections::HashMap;
5
6use super::parameter::ParameterValue;
7
8#[derive(Debug, Clone, Serialize, Deserialize)]
10pub struct Trial {
11 pub id: usize,
13 pub config: HashMap<String, ParameterValue>,
15 pub score: f64,
17 pub iterations: usize,
19 pub status: TrialStatus,
21}
22
23impl Trial {
24 pub fn new(id: usize, config: HashMap<String, ParameterValue>) -> Self {
26 Self { id, config, score: f64::INFINITY, iterations: 0, status: TrialStatus::Pending }
27 }
28
29 pub fn complete(&mut self, score: f64, iterations: usize) {
31 self.score = score;
32 self.iterations = iterations;
33 self.status = TrialStatus::Completed;
34 }
35
36 pub fn fail(&mut self) {
38 self.status = TrialStatus::Failed;
39 }
40}
41
42#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
44pub enum TrialStatus {
45 Pending,
46 Running,
47 Completed,
48 Failed,
49 Pruned,
50}