Criar 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 build, e os recursos compatíveis de cada um deles não são idênticos. Verifique a tabela abaixo para escolher um sistema de build adequado.

Engenharia de Bazel CMake
Conjuntos de ferramentas predefinidos armhf e aarch64 armel, armhf, aarch64
Conjuntos de ferramentas personalizados mais difícil de usar fácil de usar
Selecionar as operações do TF suportado não tem suporte
Delegado de GPU disponível apenas para Android qualquer plataforma compatível com OpenCL
XNNPack suportado suportado
Python Wheel suportado suportado
API C suportado compatível
API C++ compatível com projetos do Bazel com suporte a projetos CMake

Compilação cruzada para ARM com CMake

Se você tem um projeto CMake ou quer usar um conjunto de ferramentas personalizado, é melhor usar o CMake para compilação cruzada. Há uma página separada Compilação cruzada do TensorFlow Lite com o CMake (link em inglês) disponível para isso.

Compilação cruzada para ARM com Bazel

Se você tiver um projeto do Bazel ou quiser usar as operações do TF, use o sistema de build do Bazel. Use os conjuntos de ferramentas integrados ARM GCC 8.3 com o Bazel para criar uma biblioteca compartilhada ARM32/64.

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

As instruções a seguir foram testadas no Ubuntu 16.04.3 PC de 64 bits (AMD64) e na imagem Docker do TensorFlow Devel tensorflow/tensorflow:devel (em inglês).

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

Etapa 1. Instalar o Bazel

O Bazel é o principal sistema de build do TensorFlow. Instale a versão mais recente do sistema de build Bazel (link em inglês).

Etapa 2: clonar o repositório do TensorFlow

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

Etapa 3. Criar 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.

Consulte a página da API TensorFlow Lite C para mais 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 simples de extrair todos os arquivos principais necessários. Por isso, é preciso incluir todos os arquivos principais em tensorflow/lite/ do repositório do TensorFlow. Além disso, você vai precisar dos arquivos principais do FlatBuffers e do Abseil.

etc.

Você também pode compilar outros destinos do Bazel com o conjunto de ferramentas. Estes são alguns destinos úteis.

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