Esta página descreve como criar bibliotecas LiteRT para APIs computadores.
A LiteRT oferece suporte a dois sistemas de build e recursos compatíveis de cada sistema de build não são idênticos. Verifique a tabela a seguir para escolher um build adequado sistema.
Recurso | 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 operações do TF | suportado | not supported |
Delegado da GPU | disponível apenas para Android | em qualquer plataforma que ofereça suporte a OpenCL, |
XNNPack | suportado | suportado |
Python Wheel (em inglês) | suportado | suportado |
API C | suportado | compatível |
API C++ | compatível com projetos do Bazel | com suporte a projetos do CMake |
Compilação cruzada para ARM com CMake
Se você tiver um projeto CMake ou quiser usar um conjunto de ferramentas personalizado, precisará melhor usar o CMake para compilação cruzada. Há um Compilação cruzada do LiteRT com o CMake disponível para isso.
Compilação cruzada para ARM com o Bazel
Se você tem um projeto do Bazel ou quer usar o TFOps, é melhor usar o Bazel sistema de build. Você vai usar o modelo Conjuntos de ferramentas 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 32 bits SO Raspberry Pi |
AArch64 (ARM64) | --config=elinux_aarch64 | Coral, RPI4 com Ubuntu 64 pouco |
As instruções a seguir foram testadas em um PC Ubuntu 16.04.3 de 64 bits (AMD64) e a imagem Docker do TensorFlow Dev tensorflow/tensorflow:devel.
Para fazer a compilação cruzada do LiteRT com o Bazel, siga estas etapas:
Etapa 1. Instalar o Bazel
O Bazel é o sistema de build principal do TensorFlow. Instale a versão mais recente do o sistema de build do Bazel.
Etapa 2. clone 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 nestes locais:
bazel-bin/tensorflow/lite/c/libtensorflowlite_c.so
:
Conferir API LiteRT C para mais detalhes.
Biblioteca C++
bazel build --config=elinux_aarch64 -c opt //tensorflow/lite:libtensorflowlite.so
Você pode encontrar uma biblioteca compartilhada nestes locais:
bazel-bin/tensorflow/lite/libtensorflowlite.so
:
Atualmente, não há uma maneira direta de extrair todos os arquivos de cabeçalho necessários, Por isso, você precisa incluir todos os arquivos de cabeçalho no tensorflow/lite/ do código do repositório de dados. Além disso, você precisará de arquivos de cabeçalho dos FlatBuffers e Abseil.
Etc.
Você também pode criar outros destinos do Bazel com o conjunto de ferramentas. Confira algumas dicas úteis de destino.
- //tensorflow/lite/tools/benchmark:benchmark_model
- //tensorflow/lite/examples/label_image:label_image