rust_ml/core/activations/
leaky_relu.rs

1use crate::core::activations::activation::Activation;
2use ndarray::{Array, Ix1};
3
4pub struct LeakyReLU;
5
6impl Activation<Ix1> for LeakyReLU {
7    fn activate(z: &Array<f64, Ix1>) -> Array<f64, Ix1> {
8        let alpha = 0.01;
9        z.mapv(|x| if x > 0.0 { x } else { alpha * x })
10    }
11
12    fn derivative(z: &Array<f64, Ix1>) -> Array<f64, Ix1> {
13        let alpha = 0.01;
14        z.mapv(|x| if x > 0.0 { 1.0 } else { alpha })
15    }
16}