concision_neural/types/
hyperparameters.rs1#[derive(Clone, Copy, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
6#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
7pub struct KeyValue<K = String, V = f64> {
8 pub key: K,
9 pub value: V,
10}
11
12#[derive(
13 Clone,
14 Copy,
15 Debug,
16 Default,
17 Eq,
18 Hash,
19 Ord,
20 PartialEq,
21 PartialOrd,
22 scsys_derive::VariantConstructors,
23 strum::AsRefStr,
24 strum::Display,
25 strum::EnumCount,
26 strum::EnumIs,
27 strum::VariantArray,
28 strum::VariantNames,
29)]
30#[cfg_attr(
31 feature = "serde",
32 derive(serde::Deserialize, serde::Serialize),
33 serde(rename_all = "snake_case", untagged)
34)]
35#[strum(serialize_all = "snake_case")]
36pub enum Hyperparameters {
37 Decay,
38 #[default]
39 LearningRate,
40 Momentum,
41 BatchSize,
42}
43
44impl core::str::FromStr for Hyperparameters {
45 type Err = strum::ParseError;
46
47 fn from_str(s: &str) -> Result<Self, Self::Err> {
48 match s {
49 "decay" => Ok(Hyperparameters::Decay),
50 "learning_rate" => Ok(Hyperparameters::LearningRate),
51 "momentum" => Ok(Hyperparameters::Momentum),
52 _ => Err(strum::ParseError::VariantNotFound),
53 }
54 }
55}