softmax_simd

Function softmax_simd 

Source
pub fn softmax_simd<F>(a: &ArrayView1<'_, F>) -> Array1<F>
where F: Float + SimdUnifiedOps,
Expand description

SIMD-accelerated softmax

Computes exp(x - max(x)) / sum(exp(x - max(x))) for numerical stability. Output probabilities sum to 1.

§Arguments

  • a - Input array (logits)

§Returns

Probability distribution (sums to 1)

§Examples

use scirs2_core::ndarray::array;
use scirs2_core::ndarray_ext::elementwise::softmax_simd;

let x = array![1.0_f64, 2.0, 3.0];
let result = softmax_simd::<f64>(&x.view());
// Probabilities should sum to 1
let sum: f64 = result.iter().sum();
assert!((sum - 1.0).abs() < 1e-10);
// Higher logits should have higher probabilities
assert!(result[2] > result[1]);
assert!(result[1] > result[0]);

§Use Cases

  • Classification output layer
  • Attention weights
  • Policy probabilities in RL
  • Mixture model weights