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};