Criar pacote de roda 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), 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 Construir TensorFlow Lite com CMake para obter detalhes.

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

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

Compilação cruzada ARM

Para compilação cruzada ARM, é recomendado usar Docker, pois facilita a configuração do ambiente de construçã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 construção usando um contêiner Docker predefinido. Em uma máquina host Docker, você pode executar um comando de construção conforme 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. Aqui está a lista de alvos suportados.

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

Construir exemplos

Aqui estão alguns exemplos de comandos 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 um conjunto de ferramentas personalizado?

Se os binários gerados não forem compatíveis com seu destino, você precisará usar seu próprio conjunto de ferramentas ou fornecer sinalizadores de construção personalizados. (Marque isto para entender seu 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 da cadeia de ferramentas 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 do conjunto de ferramentas arm-linux-gnueabihf-
ARMCC_FLAGS sinalizadores de compilação -março=armv7-a -mfpu=neon-vfpv4