pub trait Parameters<T: Num, D: Device> {
// Required methods
fn weights(&self) -> HashMap<String, Variable<T, D>>;
fn biases(&self) -> HashMap<String, Variable<T, D>>;
// Provided methods
fn parameters(&self) -> HashMap<String, Variable<T, D>> { ... }
fn load_parameters(&mut self, parameters: HashMap<String, Variable<T, D>>) { ... }
}