native_neural_network_std 0.2.1

Ergonomic std wrapper for the `native_neural_network` crate (no_std) — std-friendly re-exports and utilities.
Documentation
#[derive(Debug)]
pub enum InitStdError {
    InvalidShape,
    ShapeMismatch,
    NonFinite,
}

impl From<native_neural_network::initializers::InitError> for InitStdError {
    fn from(e: native_neural_network::initializers::InitError) -> Self {
        match e {
            native_neural_network::initializers::InitError::InvalidShape => {
                InitStdError::InvalidShape
            }
            native_neural_network::initializers::InitError::ShapeMismatch => {
                InitStdError::ShapeMismatch
            }
            native_neural_network::initializers::InitError::NonFinite => InitStdError::NonFinite,
        }
    }
}

pub use native_neural_network::initializers::InitKind;

pub fn expected_parameter_counts(layers: &[usize]) -> Option<(usize, usize)> {
    native_neural_network::initializers::expected_parameter_counts(layers)
}

pub fn initialize_parameters(
    layers: &[usize],
    weights: &mut [f32],
    biases: &mut [f32],
    init_kind: InitKind,
    seed: u64,
) -> Result<(), InitStdError> {
    native_neural_network::initializers::initialize_parameters_f32(
        layers, weights, biases, init_kind, seed,
    )
    .map_err(|e| e.into())
}

impl core::fmt::Display for InitStdError {
    fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
        write!(f, "InitStdError::{:?}", self)
    }
}

impl std::error::Error for InitStdError {}