Overview
Ekkono Edge is the main software library for model inference and incremental training.
Hello World Example
Loading a model and incrementally training the model while predicting one instance.
1 #include "edge/Edge.h"
2 float instance[] = {1.07f, -0.32f, 209.22f, 0.00f};
3
4 auto model = Ekkono::PredictiveModel::load("models/mlp.model");
5 float prediction = model->predict_and_train(instance);
Requirements
Compiler compatible with C++14.
Main Features
- Variety of model types that are adapted for the edge machine learning environment
- Predictive modeling
- Linear Regression
- Multilayer Perceptron
- Random Forest
- Decision Trees
- Unsupervised learning
- Change detection
- Anomaly detection
- Predictive modeling
- Preprocessing pipeline for streaming data
- Saved and loaded with the model. No setup required in the implementation code.
- Automatically buffers observations for signal lags, differencing and moving averages.
- Model decorators for continous error estimation or concept drift detection.
- Conformal prediction framework for regression models.
- Model what-if simulations
- Supports hot swapping of models
All predictive models except the decision trees support incremental learning.
Intended Use
Edge, as the name suggests, is made to be implemented and run on edge devices. This includes
communication gateways, human-machine interfaces (HMIs), programmable logic controllers (PLCs), industrial computers and generally anything with a processor & a few megabytes of memory. The library is delivered as source code which you can compile for your target platform.