1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00
RIOT/tests/pkg/emlearn
Marian Buschsieweke 82d98ed377
examples, tests: update Makefile.ci for AVR8
Ran dist/tools/insufficient_memory for all AVR8 boards.
2023-12-01 19:37:05 +01:00
..
tests tests: move pkg_ application to tests/pkg subdirectory 2023-05-06 07:55:01 +02:00
.gitignore tests: move pkg_ application to tests/pkg subdirectory 2023-05-06 07:55:01 +02:00
app.config.test tests: move pkg_ application to tests/pkg subdirectory 2023-05-06 07:55:01 +02:00
digit tests: move pkg_ application to tests/pkg subdirectory 2023-05-06 07:55:01 +02:00
generate_digit.py tests: move pkg_ application to tests/pkg subdirectory 2023-05-06 07:55:01 +02:00
generate_model.py tests: move pkg_ application to tests/pkg subdirectory 2023-05-06 07:55:01 +02:00
main.c tests: move pkg_ application to tests/pkg subdirectory 2023-05-06 07:55:01 +02:00
Makefile tests: move pkg_ application to tests/pkg subdirectory 2023-05-06 07:55:01 +02:00
Makefile.ci examples, tests: update Makefile.ci for AVR8 2023-12-01 19:37:05 +01:00
model tests: move pkg_ application to tests/pkg subdirectory 2023-05-06 07:55:01 +02:00
README.md tests: move pkg_ application to tests/pkg subdirectory 2023-05-06 07:55:01 +02:00
train_model.py tests: move pkg_ application to tests/pkg subdirectory 2023-05-06 07:55:01 +02:00

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.