native_neural_network 0.1.6

Lib no_std Rust for native neural network (.rnn)
Documentation
use crate::initializers::expected_parameter_counts;

use super::RnnApiError;

pub fn rnn_validate_dense_topology(topology: &[usize]) -> Result<(), RnnApiError> {
    if topology.len() < 2 {
        return Err(RnnApiError::InvalidTopology);
    }
    if topology.contains(&0) {
        return Err(RnnApiError::InvalidTopology);
    }
    Ok(())
}

pub fn rnn_validate_dense_counts(
    topology: &[usize],
    weights_len: usize,
    biases_len: usize,
) -> Result<(), RnnApiError> {
    rnn_validate_dense_topology(topology)?;
    let (expected_w, expected_b) = expected_parameter_counts(topology).ok_or(RnnApiError::InvalidTopology)?;
    if expected_w != weights_len || expected_b != biases_len {
        return Err(RnnApiError::CapacityTooSmall);
    }
    Ok(())
}