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 |