mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2025-01-18 12:52:44 +01:00
2c89b7acd3
The Makefile rule to regenerate model.h has been left in place, but just adding the header to the test allows to build the application without heaving emlearn installed, which is convenient for the CI. Actual users of emlearn will like still want to generate the header. |
||
---|---|---|
.. | ||
tests | ||
.gitignore | ||
digit | ||
generate_digit.py | ||
generate_model.py | ||
main.c | ||
Makefile | ||
Makefile.ci | ||
model | ||
model.h | ||
README.md | ||
train_model.py |
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:
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.$ ./generate_digit.py -i 1
train_model.py
is used to train a new Scikit-Learn Random Forest estimator. The trained model is stored in themodel
binary file.
will just train the model.$ ./train_model.py
generate_model.py
is used to generate thesonar.h
header file from themodel
binary file. The script is called automatically by the build system when themodel
binary file is updated.