Ajuda a proteger a Grande Barreira de Corais com TensorFlow em Kaggle Junte Desafio

Compilar o pacote TensorFlow Lite Python Wheel

Esta página descreve como construir o TensorFlow Lite tflite_runtime biblioteca Python para x86_64 e vários dispositivos ARM.

As instruções a seguir foram testados no Ubuntu 16.04.3 computador de 64 bits (AMD64), MacOS Catalina (x86_64) e imagem TensorFlow devel Docker tensorflow / tensorflow: devel .

Pré-requisitos

Você precisa do CMake instalado e de uma cópia do código-fonte do TensorFlow. Por favor, verifique Desenvolver TensorFlow Lite com CMake página para 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, é recomendado usar o Docker, pois torna mais fácil configurar o ambiente de compilação cruzada. Além disso, você precisa de um target opção para descobrir a arquitetura alvo.

Há um script auxiliar tensorflow/tools/ci_build/ci_build.sh disponíveis para invocar um comando de compilação usando um recipiente Docker pré-definido. Em uma máquina host Docker, você pode executar um comando de compilação com o container nome e o target nome como seguintes.

tensorflow/tools/ci_build/ci_build.sh <container> \
  tensorflow/lite/tools/pip_package/build_pip_package_with_cmake.sh <target>

Contêineres Docker disponíveis

Você precisa selecionar o contêiner de compilação cruzada ARM para a versão do interpretador Python de destino. Aqui está a lista de contêineres com suporte.

Recipiente Versão Python compatível
PI-PYTHON37 Python 3.7
PI-PYTHON38 Python 3.8
PI-PYTHON39 Python 3.9

Nomes de alvos disponíveis

tensorflow/lite/tools/pip_package/build_pip_package_with_cmake.sh roteiro precisa de um nome de destino para descobrir a arquitetura alvo. Aqui está a lista de destinos com suporte.

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 de 64 bits) Coral Mendel Linux 4.0
Raspberry Pi com Ubuntu Servidor 20.04.01 LTS 64-bit
nativo Sua estação de trabalho Ele é construído com otimização "-mnativa"
Sua estação de trabalho Alvo padrão

Exemplos de construção

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

alvo armhf para Python 3.7

tensorflow/tools/ci_build/ci_build.sh PI-PYTHON37 \
  tensorflow/lite/tools/pip_package/build_pip_package_with_cmake.sh armhf

alvo aarch64 para Python 3.8

tensorflow/tools/ci_build/ci_build.sh PI-PYTHON38 \
  tensorflow/lite/tools/pip_package/build_pip_package_with_cmake.sh aarch64

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. (Confira este entender o seu ambiente de destino) Nesse caso, é necessário modificar tensorflow/lite/tools/cmake/download_toolchains.sh usar o seu próprio conjunto de ferramentas. O script toolchain define as duas variáveis seguintes para o build_pip_package_with_cmake.sh script.

Variável Propósito exemplo
ARMCC_PREFIX define o prefixo do conjunto de ferramentas arm-linux-gnueabihf-
ARMCC_FLAGS sinalizadores de compilação -march = armv7-a -mfpu = neon-vfpv4