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.
Funcionalidade | 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 do TF | suportado | não suportado |
Delegado de GPU | disponível apenas para Android | qualquer plataforma que suporte OpenCL |
XNNPackName | suportado | suportado |
Roda Python | suportado | suportado |
API C | suportado | suportado |
API C++ | com suporte para projetos Bazel | com suporte para projetos CMake |
Compilação cruzada para ARM com CMake
Se você tiver um projeto CMake ou quiser usar uma cadeia de ferramentas personalizada, é melhor usar o CMake para compilação cruzada. Há uma página separada do TensorFlow Lite com CMake de compilação cruzada disponível para isso.
Compilação cruzada para ARM com Bazel
Se você tiver um projeto Bazel ou se quiser usar operações TF, é melhor usar o sistema de compilação Bazel. Você usará as cadeias de ferramentas ARM GCC 8.3 integradas 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 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
Bazel é o principal sistema de compilação do TensorFlow. Instale a versão mais recente do sistema de compilação Bazel .
Etapa 2. Clonar o repositório do TensorFlow
git clone https://github.com/tensorflow/tensorflow.git tensorflow_src
Etapa 3. Construir 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 TensorFlow Lite C para obter 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 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 do 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