1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00
RIOT/tests/pkg/emlearn/README.md

1.4 KiB

Emlearn package test application

This application shows how to use a machine learning model with emlearn on RIOT in order to predict a value from a hand written digit image. The model is a Scikit-Learn random forest estimator trained on the MNIST dataset.

Expected output

The default digit to predict is a hand-written '6', so the application output is the following:

Predicted digit: 6

Use the Python scripts

The application comes with 3 Python scripts:

  • generate_digit.py is used to generate a new digit file. This file is embedded in the firmware image and is used as input for the inference engine. Use the -i option to select a different digit. For example, the following command:
    $ ./generate_digit.py -i 1
    
    will generate a digit containing a '9'. The digit is displayed at the end of the script so one knows which digit is stored. Note that each time a new digit is generated, the firmware image must be rebuilt to include this new digit.
  • train_model.py is used to train a new Scikit-Learn Random Forest estimator. The trained model is stored in the model binary file.
    $ ./train_model.py
    
    will just train the model.
  • generate_model.py is used to generate the sonar.h header file from the model binary file. The script is called automatically by the build system when the model binary file is updated.