Docker Environment Setup for TFLite Micro
Running TFLite Micro examples on Windows requires a containerized Linux environment due to the project's build system dependencies. Docker provides the necessary isolation and compatibility for cross-platform development.
Installing Docker Desktop
Download Docker Desktop from the official source:
After installation, ensure Docker Desktop is running before proceeding to the next steps.
Preparing the Projeect
Clone the official TFLite Micro repository using Git:
git clone https://github.com/tensorflow/tflite-micro.git
cd tflite-micro
Create a Dockerfile in the project root directory with the following configuration:
FROM ubuntu:22.04
WORKDIR /app
# Switch to Alibaba mirror for faster downloads
RUN sed -i s@/archive.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list
RUN sed -i s@/security.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list
RUN apt-get clean
RUN apt-get update
# Install Python and build dependencies
RUN apt-get install -y python3 python3-pip patchelf
RUN apt-get install -y gcc g++ make
# Configure Bazel repository
RUN apt-get install -y apt-transport-https curl gnupg
RUN curl -fsSL https://bazel.build/bazel-release.pub.gpg | gpg --dearmor >bazel-archive-keyring.gpg
RUN mv bazel-archive-keyring.gpg /usr/share/keyrings
RUN echo "deb [arch=amd64 signed-by=/usr/share/keyrings/bazel-archive-keyring.gpg] https://storage.googleapis.com/bazel-apt stable jdk1.8" | tee /etc/apt/sources.list.d/bazel.list
# Install Bazel build tool
RUN apt-get update && apt-get install -y bazel-7.0.0
Building the Docker Image
Open a command prompt in the project directory and execute:
docker build -t tflite_micro_env .
This command creates a Docker image named tflite_micro_env based on the configuration above.
Launching the Container
Create and start a container with the built image:
docker run -d -it -v %cd%:/app --name tflite_container tflite_micro_env
The -v %cd%:/app flag mounts the current Windows directory to /app inside the container, enabling file synchronization between the host and container environments.
Executing Build Commands
Access the running container's shell:
docker exec -it tflite_container bash
Within the container, build and run the audio preprocessing test example:
bazel-7.0.0 build tensorflow/lite/micro/examples/micro_speech:audio_preprocessor_test
bazel-bin/tensorflow/lite/micro/examples/micro_speech/audio_preprocessor_test
Exploring Additional Examples
The repository contains multiple example projects. Consult the README.md file in each example directory for specific build instructions and usage details. Popular examples include gesture recognition, person detection, and wake word detection implementations.
Project Structure Overview
TFLite Micro is a header-only C/C++ libray designed for embedded systems. The library provides pre-compiled static libraries and header files that can be integrated directly in to custom embedded projects. The Docker environment enables cross-compilation and testing without configuring native toolchains on Windows.