iron_torch/iron_torch/
activation.rs

1use std::f64::consts::E;
2
3#[derive(Clone)]
4pub struct Activation<'a> {
5    pub function: &'a dyn Fn(f64) -> f64,
6    pub derivative: &'a dyn Fn(f64) -> f64,
7}
8
9pub const TANH: Activation = Activation {
10    function: &|x| (E.powf(x) - E.powf(-x)) / (E.powf(x) + E.powf(-x)),
11    derivative: &|x| 1.0 - ((E.powf(x) - E.powf(-x)) / (E.powf(x) + E.powf(-x))) * ((E.powf(x) - E.powf(-x)) / (E.powf(x) + E.powf(-x))),
12};