use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct CalibrationConfig {
num_samples: usize,
sequence_length: usize,
dataset: String,
batch_size: usize,
normalize: bool,
}
impl Default for CalibrationConfig {
fn default() -> Self {
Self {
num_samples: 128,
sequence_length: 2048,
dataset: "c4".to_string(),
batch_size: 1,
normalize: true,
}
}
}
impl CalibrationConfig {
pub fn new() -> Self {
Self::default()
}
pub fn with_num_samples(mut self, n: usize) -> Self {
self.num_samples = n;
self
}
pub fn with_sequence_length(mut self, len: usize) -> Self {
self.sequence_length = len;
self
}
pub fn with_dataset(mut self, dataset: impl Into<String>) -> Self {
self.dataset = dataset.into();
self
}
pub fn with_batch_size(mut self, batch_size: usize) -> Self {
self.batch_size = batch_size;
self
}
pub fn with_normalize(mut self, normalize: bool) -> Self {
self.normalize = normalize;
self
}
pub fn num_samples(&self) -> usize {
self.num_samples
}
pub fn sequence_length(&self) -> usize {
self.sequence_length
}
pub fn dataset(&self) -> &str {
&self.dataset
}
pub fn batch_size(&self) -> usize {
self.batch_size
}
pub fn normalize(&self) -> bool {
self.normalize
}
}