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 |