O Dia da Comunidade de ML é dia 9 de novembro! Junte-nos para atualização de TensorFlow, JAX, e mais Saiba mais

Construir 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 construção adequado.

Característica Bazel CMake
Conjuntos de ferramentas predefinidos armhf, aarch64 armel, armhf, aarch64
Conjuntos de ferramentas personalizados mais difícil de usar fácil de usar
Selecione TF ops apoiado não suportado
Delegado GPU disponível apenas para Android qualquer plataforma que suporte OpenCL
XNNPack apoiado apoiado
Roda Python apoiado apoiado
API C apoiado apoiado
API C ++ compatível com projetos Bazel apoiado para projetos CMake

Compilação cruzada para ARM com CMake

Se você tem um projeto CMake ou se deseja usar um conjunto de ferramentas personalizado, é melhor usar o CMake para compilação cruzada. Há um separado compilação Cruz TensorFlow Lite com CMake página disponível para isso.

Compilação cruzada para ARM com Bazel

Se você tem um projeto Bazel ou se deseja usar TF ops, é melhor usar o sistema de compilação do Bazel. Você vai usar os integrados ARM GCC 8.3 toolchains com Bazel para construir uma biblioteca compartilhada ARM32 / 64.

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

As instruções a seguir foram testados no Ubuntu 16.04.3 PC de 64 bits (AMD64) e imagem TensorFlow devel janela de encaixe 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 o repositório TensorFlow

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

Etapa 3. Construir 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 API TensorFlow Lite C página para o detalhe.

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, então 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 do FlatBuffers e do Abseil.

Etc

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

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