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.32f209.22f0.00f};
 4  auto model = Ekkono::PredictiveModel::load("models/mlp.model");
 5  float prediction = model->predict_and_train(instance);


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
  • 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.