Criar pacote LiteRT Python Wheel

Esta página descreve como criar o LiteRT tflite_runtime Python biblioteca para x86_64 e vários dispositivos ARM.

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

Pré-requisitos

É necessário ter o CMake instalado e uma cópia do código-fonte do TensorFlow. Verifique Criar LiteRT com o CMake para mais detalhes.

Para criar o pacote do PIP para sua estação de trabalho, execute o seguinte: 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, porque ele facilita para configurar vários ambientes de build. Além disso, você precisa da opção target para descobrir arquitetura de destino.

Há uma ferramenta auxiliar no Makefile tensorflow/lite/tools/pip_package/Makefile disponíveis para invocar um comando de build usando um contêiner predefinido do Docker. Em um máquina host Docker, é possível executar um comando de criaçã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

tensorflow/lite/tools/pip_package/build_pip_package_with_cmake.sh necessidade de script um nome de destino para descobrir a arquitetura-alvo. Esta é a lista de de destino.

Destino Arquitetura de destino 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 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 cria com "-mnative" otimização
padrão Sua estação de trabalho Destino padrão

Exemplos de build

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

Destino de armhf para Python 3.7

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

destino do 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, será preciso usar seu próprio conjunto de ferramentas ou fornecer sinalizações de compilação personalizadas. (Verificar este 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 do conjunto de ferramentas define as duas variáveis a seguir para a 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