pub mod activations;
pub mod layer;
pub mod network;
pub mod neural_pid;
pub mod rbf_network;
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum NeuralError {
InvalidDimension,
NotConverged,
NumericalOverflow,
}
impl core::fmt::Display for NeuralError {
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
match self {
NeuralError::InvalidDimension => {
write!(f, "NeuralError: invalid dimension or parameter")
}
NeuralError::NotConverged => write!(f, "NeuralError: training did not converge"),
NeuralError::NumericalOverflow => {
write!(f, "NeuralError: numerical overflow (non-finite value)")
}
}
}
}
pub use activations::{ActivationFn, LeakyRelu, Linear, Relu, Sigmoid, Swish, Tanh};
pub use layer::{DenseLayer, GradDense};
pub use network::{Mlp, MlpRegressor};
pub use neural_pid::{make_rbf_centers, NeuralPid, NeuralPidConfig};
pub use rbf_network::{gaussian_rbf, RbfCenter, RbfNetwork};