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]