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

Compile o TensorFlow Lite para placas ARM

Esta página descreve como compilar as bibliotecas do TensorFlow Lite para computadores ARM.

O TensorFlow Lite tem suporte a dois sistemas de build, mas os recursos de cada sistema de compilação não são idênticos. Confira a tabela abaixo para escolher o sistema de compilação adequado.

RecursoBazelCMake
Toolchains predefinidasarmhf, aarch64armel, armhf, aarch64
Toolchains personalizadasMais difícil de usarFácil de usar
Select TF opsCom suporteSem suporte
Delegado de GPUDisponível somente para AndroidQualquer plataforma com suporte ao OpenCL
XNNPackCom suporteCom suporte
Wheel do PythonCom suporteCom suporte
API do CCom suporteCom suporte
API do C++Com suporte para projetos BazelCom suporte para projetos CMake

Compilação cruzada para ARM com CMake

Se você tiver um projeto CMake ou se quiser usar uma toolchain personalizada, é melhor usar o CMake para fazer a compilação cruzada. Existe uma página Compilação cruzada do TensorFlow Lite com o CMake específica para isso.

Compilação cruzada para ARM com Bazel

Se você tiver um projeto Bazel ou se quiser usar operações do TF, é melhor usar o sistema de build Bazel. Você usará as toolchains ARM GCC 8.3 integradas com o Bazel para compilar uma biblioteca ARM32/64 compartilhada.

Arquitetura desejadaConfiguração do BazelDispositivos compatíveis
armhf (ARM32)--config=elinux_armhfRPI3, RPI4 com 32 bits
: : : Raspberry Pi OS :
AArch64 (ARM64)--config=elinux_aarch64Coral, RPI4 com Ubuntu 64
: : : bits :

Observação: a biblioteca compartilhada gerada requer o glibc 2.28 ou superior para ser executada.

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

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

Etapa 1. Instale o Bazel

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

Observação: se você estiver usando a imagem docker do TensorFlow, o Bazel já está disponível.

Etapa 2. Clone o repositório do TensorFlow

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

Observação: se você estiver usando a imagem docker do TensorFlow, o repositório já está disponível em /tensorflow_src/.

Etapa 3. Compile o binário ARM

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

A biblioteca compartilhada está disponível em: bazel-bin/tensorflow/lite/c/libtensorflowlite_c.so.

Observação: use elinux_armhf para uma compilação ARM hard-float de 32 bits.

Confira mais detalhes na página da API do C para TensorFlow Lite.

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

A biblioteca compartilhada está disponível em: bazel-bin/tensorflow/lite/libtensorflowlite.so.

No momento, não há uma maneira simples de extrair todos os arquivos de cabeçalho necessários, então você precisa incluir todos os arquivos em tensorflow/lite/ a partir do repositório do TensorFlow. Além disso, você precisará dos arquivos de cabeçalho de FlatBuffers e Abseil.

Etc.

Você também pode compilar outros alvos do Bazel com a toolchain. Veja alguns alvos úteis:

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

  • //tensorflow/lite/examples/label_image:label_image