entrenar/yaml_mode/manifest/
output.rs1use serde::{Deserialize, Serialize};
6
7#[derive(Debug, Clone, Serialize, Deserialize)]
9pub struct OutputConfig {
10 pub dir: String,
12
13 #[serde(default, skip_serializing_if = "Option::is_none")]
15 pub model: Option<ModelOutputConfig>,
16
17 #[serde(default, skip_serializing_if = "Option::is_none")]
19 pub metrics: Option<MetricsOutputConfig>,
20
21 #[serde(default, skip_serializing_if = "Option::is_none")]
23 pub report: Option<ReportConfig>,
24
25 #[serde(default, skip_serializing_if = "Option::is_none")]
27 pub registry: Option<RegistryConfig>,
28}
29
30#[derive(Debug, Clone, Serialize, Deserialize)]
32pub struct ModelOutputConfig {
33 #[serde(default, skip_serializing_if = "Option::is_none")]
35 pub format: Option<String>,
36
37 #[serde(default, skip_serializing_if = "Option::is_none")]
39 pub save_optimizer: Option<bool>,
40
41 #[serde(default, skip_serializing_if = "Option::is_none")]
43 pub save_scheduler: Option<bool>,
44}
45
46#[derive(Debug, Clone, Serialize, Deserialize)]
48pub struct MetricsOutputConfig {
49 #[serde(default, skip_serializing_if = "Option::is_none")]
51 pub format: Option<String>,
52
53 #[serde(default, skip_serializing_if = "Option::is_none")]
55 pub include: Option<Vec<String>>,
56}
57
58#[derive(Debug, Clone, Serialize, Deserialize)]
60pub struct ReportConfig {
61 pub enabled: bool,
62 #[serde(default, skip_serializing_if = "Option::is_none")]
63 pub format: Option<String>,
64 #[serde(default, skip_serializing_if = "Option::is_none")]
65 pub include_plots: Option<bool>,
66}
67
68#[derive(Debug, Clone, Serialize, Deserialize)]
70pub struct RegistryConfig {
71 pub enabled: bool,
72 #[serde(default, skip_serializing_if = "Option::is_none")]
73 pub target: Option<String>,
74 #[serde(default, skip_serializing_if = "Option::is_none")]
75 pub include_config: Option<bool>,
76 #[serde(default, skip_serializing_if = "Option::is_none")]
77 pub include_metrics: Option<bool>,
78}