Crie o TensorFlow Lite para placas ARM

Esta página descreve como criar as bibliotecas do TensorFlow Lite para computadores baseados em ARM.

O TensorFlow Lite oferece suporte a dois sistemas de compilação e os recursos compatíveis de cada sistema de compilação não são idênticos. Verifique a tabela a seguir para escolher um sistema de compilação adequado.

Recurso bazel CMake
Cadeias de ferramentas predefinidas armhf, aarch64 armel, armhf, aarch64
Cadeias de ferramentas personalizadas mais difícil de usar fácil de usar
Selecione as operações de TF suportado não suportado
delegado da GPU disponível apenas para Android qualquer plataforma que suporte OpenCL
XNNPack suportado suportado
Roda Python suportado suportado
APIC suportado suportado
API C++ suportado para projetos Bazel suportado para projetos CMake

Compilação cruzada para ARM com CMake

Se você tiver um projeto CMake ou se quiser usar uma cadeia de ferramentas personalizada, é melhor usar o CMake para compilação cruzada. Há uma página separada TensorFlow Lite de compilação cruzada com CMake disponível para isso.

Compilação cruzada para ARM com Bazel

Se você tem um projeto Bazel ou se deseja usar operações de TF, é melhor usar o sistema de compilação Bazel. Você usará as cadeias de ferramentas ARM GCC 8.3 integradas com Bazel para criar uma biblioteca compartilhada ARM32/64.

Arquitetura alvo Configuração Bazel Dispositivos Compatíveis
armhf (ARM32) --config=elinux_armhf RPI3, RPI4 com sistema operacional Raspberry Pi de 32 bits
AArch64 (ARM64) --config=elinux_aarch64 Coral, RPI4 com Ubuntu 64 bits

As instruções a seguir foram testadas no Ubuntu 16.04.3 PC de 64 bits (AMD64) e TensorFlow devel docker image tensorflow/tensorflow:devel .

Para fazer a compilação cruzada do TensorFlow Lite com o Bazel, siga as etapas:

Etapa 1. Instale o Bazel

O Bazel é o principal sistema de compilação do TensorFlow. Instale a versão mais recente do sistema de compilação Bazel .

Etapa 2. Clonar repositório do TensorFlow

git clone https://github.com/tensorflow/tensorflow.git tensorflow_src

Passo 3. Construa o binário ARM

biblioteca C
bazel build --config=elinux_aarch64 -c opt //tensorflow/lite/c:libtensorflowlite_c.so

Você pode encontrar uma biblioteca compartilhada em: bazel-bin/tensorflow/lite/c/libtensorflowlite_c.so .

Verifique a página da API do TensorFlow Lite C para obter detalhes.

biblioteca C++
bazel build --config=elinux_aarch64 -c opt //tensorflow/lite:libtensorflowlite.so

Você pode encontrar uma biblioteca compartilhada em: bazel-bin/tensorflow/lite/libtensorflowlite.so .

Atualmente, não há uma maneira direta de extrair todos os arquivos de cabeçalho necessários, portanto, você deve incluir todos os arquivos de cabeçalho em tensorflow/lite/ do repositório TensorFlow. Além disso, você precisará de arquivos de cabeçalho de FlatBuffers e Abseil.

etc

Você também pode criar outros destinos Bazel com a cadeia de ferramentas. Aqui estão alguns alvos úteis.

  • //tensorflow/lite/tools/benchmark:benchmark_model
  • //tensorflow/lite/examples/label_image:label_image