mirror of
https://github.com/Magnus167/rustframe.git
synced 2025-08-20 04:00:01 +00:00
Add activation functions: sigmoid, dsigmoid, relu, and drelu
This commit is contained in:
parent
6718cf5de7
commit
dbbf5f9617
18
src/compute/activations.rs
Normal file
18
src/compute/activations.rs
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
use crate::matrix::{Matrix, SeriesOps};
|
||||||
|
|
||||||
|
pub fn sigmoid(x: &Matrix<f64>) -> Matrix<f64> {
|
||||||
|
x.map(|v| 1.0 / (1.0 + (-v).exp()))
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn dsigmoid(y: &Matrix<f64>) -> Matrix<f64> {
|
||||||
|
// derivative w.r.t. pre-activation; takes y = sigmoid(x)
|
||||||
|
y.map(|v| v * (1.0 - v))
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn relu(x: &Matrix<f64>) -> Matrix<f64> {
|
||||||
|
x.map(|v| if v > 0.0 { v } else { 0.0 })
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn drelu(x: &Matrix<f64>) -> Matrix<f64> {
|
||||||
|
x.map(|v| if v > 0.0 { 1.0 } else { 0.0 })
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user