elm

A minimalist framework for Extreme Learning Machines (ELMs)

10 releases

0.3.2 Jan 13, 2024
0.3.1 Jan 6, 2024
0.2.4 Dec 31, 2023
0.1.2 Dec 10, 2023

#455 in Machine learning

MIT license

28KB
373 lines

Extreme Learning Machines (ELMs)

Extreme Learning Machine (ELM) crate. A minimalistic and flexible crate that can be used to train ELMs, a type of Neural Networks. Currently supports a single hidden layer and regression tasks.

References:

Basic usage

use elm::{ELM, Epsilon};
use elm::activation_functions::ActivationFunction;

let mut elm = ELM::new(2, 4, 2, ActivationFunction::LeakyReLU, Epsilon::Default);
let inputs: Vec<Vec<f64>> = vec![vec![1.0, 0.0], vec![1.0, 0.0]];
let targets: Vec<Vec<f64>> = vec![vec![1.0, 1.0], vec![1.0, 1.5]];
elm.train(&inputs, &targets);

let new_inputs: Vec<Vec<f64>> = vec![vec![1.0, 4.0], vec![1.3, 0.6]];
let prediction = elm.predict(&new_inputs);

Activation functions

ELU

LeakyReLU

Linear

ReLU

Sigmoidal

Step

TanH

Road map

  • Export module: to save and load previously trained models

Dependencies

~5.5MB
~109K SLoC