The Tensorflow Lite for Microcontrollers software package takes a binary blob containing a TFLite flatbuffer as input. The flatbuffer is typically created using the TensorFlow Lite Flatbuffer Converter. The SLC tools used by the Gecko SDK Suite support automatically serializing
.tflite files present in the project
config/tflite directory to C arrays in the
sl_ml_model.c file in the project
The symbol name for the array is inherited from the file name. If multiple
.tflite files are present in the
config/tflite directory, multiple arrays with corresponding symbols are created.
The conversion is automatically performed on every project generation if a file with the
.tflite extension is found in the
config/tflite/micro_speech.tflite exists in the project. Upon SLC project generation, the files
autogen/sl_ml_model.h are created, exposing the following symbols:
const uint8_t micro_speech_array; const uint32_t micro_speech_len;
#include "sl_ml_model.h" const tflite::Model* model = tflite::GetModel(micro_speech_array);
If conversion is desired outside of a full SLC project generation, the flatbuffer converter can be invoked using several methods.
As SLC Project Generator
The flatbuffer conversion step of the project generation process can be run standalone by passing
-tools tflite to the
slc generate command, e.g.
slc generate -p my_project.slcp -tools tflite
As Standalone SLC Command
The flatbuffer converter is also available as a standalone command in SLC for use outside of the context of a project. Execute the following command, using absolute paths for both input and output directories.
slc tflite generate -contentFolder [/path/to/config/tflite] -generationOutput [/path/to/autogen]