use crate::prelude::*;
use std::fmt::Display;
#[derive(Debug, Serialize, Deserialize)]
pub enum Optimizer {
AdamW,
AdamW8bit,
Adafactor,
DAdaptation,
DAdaptationGrad,
DAdaptAdam,
DAdaptAdan,
DAdaptAdamIP,
DAdaptAdamReprint,
DAdaptLion,
DAdaptSGD,
Lion,
Lion8bit,
PagedAdamW8bit,
PagedAdamW32bit,
PagedLion8bit,
Prodigy,
SGDNesterov,
SGDNesterov8bit
}
impl Display for Optimizer {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
Optimizer::AdamW => write!(f, "AdamW"),
Optimizer::AdamW8bit => write!(f, "AdamW8bit"),
Optimizer::Adafactor => write!(f, "Adafactor"),
Optimizer::DAdaptation => write!(f, "DAdaptation"),
Optimizer::DAdaptationGrad => write!(f, "DAdaptationGrad"),
Optimizer::DAdaptAdam => write!(f, "DAdaptAdam"),
Optimizer::DAdaptAdan => write!(f, "DAdaptAdan"),
Optimizer::DAdaptAdamIP => write!(f, "DAdaptAdamIP"),
Optimizer::DAdaptAdamReprint => write!(f, "DAdaptAdamReprint"),
Optimizer::DAdaptLion => write!(f, "DAdaptLion"),
Optimizer::DAdaptSGD => write!(f, "DAdaptSGD"),
Optimizer::Lion => write!(f, "Lion"),
Optimizer::Lion8bit => write!(f, "Lion8bit"),
Optimizer::PagedAdamW8bit => write!(f, "PagedAdamW8bit"),
Optimizer::PagedAdamW32bit => write!(f, "PagedAdamW32bit"),
Optimizer::PagedLion8bit => write!(f, "PagedLion8bit"),
Optimizer::Prodigy => write!(f, "Prodigy"),
Optimizer::SGDNesterov => write!(f, "SGDNesterov"),
Optimizer::SGDNesterov8bit => write!(f, "SGDNesterov8bit")
}
}
}