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}