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 |