native_neural_network 0.1.6

Lib no_std Rust for native neural network (.rnn)
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
use super::errors::MoeError;

pub fn top1_gating(scores: &[f32], num_experts: usize) -> Result<usize, MoeError> {
    if scores.is_empty() || num_experts == 0 || scores.len() < num_experts {
        return Err(MoeError::Empty);
    }

    let mut best_idx = 0usize;
    let mut best = scores[0];
    for (i, &v) in scores.iter().enumerate().take(num_experts).skip(1) {
        if v > best {
            best = v;
            best_idx = i;
        }
    }
    Ok(best_idx)
}