Flatbuffer Conversion #
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
autogen
directory.
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
directory.
Example #
The file
config/tflite/micro_speech.tflite
exists in the project. Upon SLC project generation, the files
autogen/sl_ml_model.c
and
autogen/sl_ml_model.h
are created, exposing the following symbols:
const uint8_t micro_speech_array[];
const uint32_t micro_speech_len;
Usage:
#include "sl_ml_model.h"
const tflite::Model* model = tflite::GetModel(micro_speech_array);
Manual Usage #
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]