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