Crie o pacote de rodas Python do TensorFlow Lite

Esta página descreve como criar a biblioteca Python TensorFlow Lite tflite_runtime para x86_64 e vários dispositivos ARM.

As instruções a seguir foram testadas no Ubuntu 16.04.3 PC de 64 bits (AMD64) , macOS Catalina (x86_64) e TensorFlow devel Docker image tensorflow/tensorflow:devel .

Pré-requisitos

Você precisa do CMake instalado e de uma cópia do código-fonte do TensorFlow. Verifique a página Build TensorFlow Lite com CMake para obter os detalhes.

Para construir o pacote PIP para sua estação de trabalho, você pode executar os seguintes comandos.

PYTHON=python3 tensorflow/lite/tools/pip_package/build_pip_package_with_cmake.sh native

Compilação cruzada ARM

Para compilação cruzada ARM, é recomendável usar o Docker, pois facilita a configuração do ambiente de compilação cruzada. Além disso, você precisa de uma opção target para descobrir a arquitetura de destino.

Há uma ferramenta auxiliar em Makefile tensorflow/lite/tools/pip_package/Makefile disponível para invocar um comando de compilação usando um contêiner Docker predefinido. Em uma máquina host do Docker, você pode executar um comando de compilação da seguinte maneira.

make -C tensorflow/lite/tools/pip_package docker-build \
  TENSORFLOW_TARGET=<target> PYTHON_VERSION=<python3 version>

Nomes de destino disponíveis

O script tensorflow/lite/tools/pip_package/build_pip_package_with_cmake.sh precisa de um nome de destino para descobrir a arquitetura de destino. Aqui está a lista de alvos suportados.

Alvo Arquitetura alvo Comentários
armhf ARMv7 VFP com Neon Compatível com Raspberry Pi 3 e 4
rpi0 ARMv6 Compatível com Raspberry Pi Zero
aarch64 aarch64 (ARM 64 bits) Coral MendelLinux 4.0
Raspberry Pi com Ubuntu Server 20.04.01 LTS 64 bits
nativo Sua estação de trabalho Ele constrói com otimização "-mnative"
Sua estação de trabalho Alvo padrão

Construir exemplos

Aqui estão alguns comandos de exemplo que você pode usar.

alvo armhf para Python 3.7

make -C tensorflow/lite/tools/pip_package docker-build \
  TENSORFLOW_TARGET=armhf PYTHON_VERSION=3.7

alvo aarch64 para Python 3.8

make -C tensorflow/lite/tools/pip_package docker-build \
  TENSORFLOW_TARGET=aarch64 PYTHON_VERSION=3.8

Como usar uma cadeia de ferramentas personalizada?

Se os binários gerados não forem compatíveis com seu destino, você precisará usar sua própria cadeia de ferramentas ou fornecer sinalizadores de construção personalizados. (Verifique isso para entender seu ambiente de destino) Nesse caso, você precisa modificar tensorflow/lite/tools/cmake/download_toolchains.sh para usar sua própria cadeia de ferramentas. O script toolchain define as duas variáveis ​​a seguir para o script build_pip_package_with_cmake.sh .

Variável Propósito exemplo
ARMCC_PREFIX define o prefixo da cadeia de ferramentas arm-linux-gnueabihf-
ARMCC_FLAGS sinalizadores de compilação -march=armv7-a -mfpu=neon-vfpv4