Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
tensorflow
GitHub Repository: tensorflow/docs-l10n
Path: blob/master/site/pt-br/lite/guide/build_cmake_pip.md
25118 views

Compile o pacote Wheel do Python do TensorFlow Lite

Esta página descreve como compilar a biblioteca do Python tflite_runtime do TensorFlow Lite para dispositivos x86_64 e diversos dispositivos ARM.

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

Observação: esse recurso está disponível a partir a versão 2.4.

Pré-requisitos

Você precisa instalar o CMake e de uma cópia do código fonte do TensorFlow. Confira mais detalhes na página Compile o TensorFlow Lite com o CMake.

Para compilar 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

Observação: se você tiver vários interpretadores do Python disponíveis, especifique a versão do Python exata pela variável PYTHON (atualmente, há suporte ao Python 3.7 e superiores).

Compilação cruzada para ARM

No caso de compilação cruzada para ARM, recomenda-se 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 alvo.

Existe uma ferramenta helper no Makefile tensorflow/lite/tools/pip_package/Makefile disponível para invocar um comando de compilação usando um container Docker predefinido. Em uma máquina host Docker, você pode executar um comando de compilação da seguinte forma:

make -C tensorflow/lite/tools/pip_package docker-build \ TENSORFLOW_TARGET=<target> PYTHON_VERSION=<python3 version>

Observação: há suporte ao Python versão 3.7 e superiores.

Nomes de alvos disponíveis

O script tensorflow/lite/tools/pip_package/build_pip_package_with_cmake.sh requer um nome de alvo para descobrir a arquitetura alvo. Veja a lista de alvos com suporte:

AlvoArquitetura alvoComentários
armhfARMv7 VFP com NeonCompatível com Raspberry Pi 3 e 4
rpi0ARMv6Compatível com Raspberry Pi Zero
aarch64aarch64 (ARM de 64 bits)Coral Mendel Linux 4.0
Raspberry Pi com Ubuntu Server 20.04.01 LTS de 64 bits
nativeSua estação de trabalhoCompila com a otimização "-mnative"
Sua estação de trabalhoAlvo padrão

Exemplos de builds

Veja alguns 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 uma toolchain personalizada?

Se os binários gerados não forem compatíveis com seu alvo, você precisa usar sua própria toolchain e fornecer sinalizadores de compilação personalizados (confira aqui para entender seu ambiente alvo). Nesse caso, você precisa modificar tensorflow/lite/tools/cmake/download_toolchains.sh para usar sua própria toolchain. O script da toolchain define as duas variáveis abaixo para o script build_pip_package_with_cmake.sh.

VariávelFinalidadeExemplo
ARMCC_PREFIXDefine o prefixo da toolchainarm-linux-gnueabihf-
ARMCC_FLAGSSinalizadores de compilação-march=armv7-a -mfpu=neon-vfpv4

Observação: pode ser que ARMCC_FLAGS precise conter o caminho de inclusão da biblioteca do Python. Confira a referência em download_toolchains.sh.