Criar pacote Wheel Python do TensorFlow Lite

Esta página descreve como criar a biblioteca Python tflite_runtime do TensorFlow Lite 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), no macOS Catalina (x86_64) e na imagem do Docker tensorflow/tensorflow:devel do TensorFlow.

Pré-requisitos

É necessário instalar o CMake e uma cópia do código-fonte do TensorFlow. Consulte a página Criar TensorFlow Lite com CMake para saber mais.

Para criar o pacote PIP para sua estação de trabalho, execute os comandos a seguir.

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

Compilação cruzada de ARM

Para compilação cruzada ARM, é recomendável usar o Docker, porque ele facilita a configuração do ambiente de compilação cruzada. Você também precisa de uma opção target para descobrir a arquitetura de destino.

Há uma ferramenta auxiliar no Makefile tensorflow/lite/tools/pip_package/Makefile disponível para invocar um comando de build usando um contêiner predefinido do Docker. Em uma máquina host do Docker, é possível executar um comando de build como mostrado a seguir.

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. Veja a lista de destinos compatíveis.

Target Arquitetura de destino Comentários
Armhf VFP ARMv7 com Neon Compatível com Raspberry Pi 3 e 4
rpi0 ARMv6 Compatível com Raspberry Pi Zero
aarch64 aarch64 (ARM de 64 bits) Coral Mendel Linux 4.0
Raspberry Pi com Ubuntu Server 20.04.01 LTS de 64 bits
nativo Sua estação de trabalho Ele é desenvolvido com a otimização "-mnative".
padrão Sua estação de trabalho Valor padrão

Exemplos de criação

Veja a seguir alguns exemplos de comandos que você pode usar.

destino armhf para Python 3.7

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

Destino aarch64 para Python 3.8

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

Como usar um conjunto de ferramentas personalizado?

Se os binários gerados não forem compatíveis com o destino, será necessário usar seu próprio conjunto de ferramentas ou fornecer sinalizações de compilação personalizadas. (Clique aqui para entender o ambiente de destino.). Nesse caso, você precisa modificar tensorflow/lite/tools/cmake/download_toolchains.sh para usar seu próprio conjunto de ferramentas. O script do conjunto de ferramentas define as duas variáveis a seguir para o script build_pip_package_with_cmake.sh.

Variável Finalidade exemplo.
ARMCC_PREFIX define o prefixo do conjunto de ferramentas arm-linux-gnueabihf-
ARMCC_FLAGS flags de compilação -march=armv7-a -mfpu=neon-vfpv4