#![allow(clippy::missing_docs_in_private_items, clippy::print_stdout)]
use esopt::*;
fn main() {
let eval = ExampleEval { target: 25.0 };
let mut es = ES::new_with_sgd(eval, 0.75, 0.0, 0.0); es.set_params(vec![0.0]) .set_std(50.0) .set_samples(10);
for _ in 0..5 {
let res = es.optimize(2); println!("(Score, Gradnorm): {:?}", res);
println!("Params: {:?}", es.get_params());
}
}
#[derive(Clone)]
struct ExampleEval {
target: Float,
}
impl Evaluator for ExampleEval {
fn eval_test(&self, params: &[Float]) -> Float {
let error = self.target - params[0];
-error.abs()
}
fn eval_train(&self, params: &[Float], _: usize) -> Float {
self.eval_test(params)
}
}