Google I/O — это обертка! Наверстать упущенное в сеансах TensorFlow Просмотреть сеансы

Сборка TensorFlow Lite для плат ARM

На этой странице описывается, как создавать библиотеки TensorFlow Lite для компьютеров на базе ARM.

TensorFlow Lite поддерживает две системы сборки, и поддерживаемые функции каждой системы сборки не идентичны. Проверьте следующую таблицу, чтобы выбрать правильную систему сборки.

Характерная черта Базель CMake
Предопределенные цепочки инструментов армхф, аарх64 армель, armhf, aarch64
Пользовательские наборы инструментов сложнее в использовании легко использовать
Выберите операции TF поддерживается не поддерживается
Делегат графического процессора доступно только для Android любая платформа, поддерживающая OpenCL
XNNPack поддерживается поддерживается
Питон Колесо поддерживается поддерживается
C API поддерживается поддерживается
С++ API поддерживается для проектов Bazel поддерживается для проектов CMake

Кросс-компиляция для ARM с помощью CMake

Если у вас есть проект CMake или вы хотите использовать собственную цепочку инструментов, вам лучше использовать CMake для кросс-компиляции. Для этого доступна отдельная кросс-компиляция TensorFlow Lite с страницей CMake .

Кросс-компиляция для ARM с помощью Bazel

Если у вас есть проект Bazel или вы хотите использовать операции TF, вам лучше использовать систему сборки Bazel. Вы будете использовать интегрированные цепочки инструментов ARM GCC 8.3 с Bazel для создания общей библиотеки ARM32/64.

Целевая архитектура Конфигурация Базель Совместимые устройства
армхф (ARM32) --config=elinux_armhf RPI3, RPI4 с 32-битной ОС Raspberry Pi
Арх64 (ARM64) --config=elinux_aarch64 Coral, RPI4 с Ubuntu 64 бит

Следующие инструкции были протестированы на 64-битном ПК с Ubuntu 16.04.3 (AMD64) и образе докера TensorFlow devel tensorflow/tensorflow:devel .

Чтобы перекрестно скомпилировать TensorFlow Lite с Bazel, выполните следующие действия:

Шаг 1. Установите Базель

Bazel — это основная система сборки для TensorFlow. Установите последнюю версию системы сборки Bazel .

Шаг 2. Клонируйте репозиторий TensorFlow

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

Шаг 3. Соберите двоичный файл ARM

библиотека C
bazel build --config=elinux_aarch64 -c opt //tensorflow/lite/c:libtensorflowlite_c.so

Вы можете найти общую библиотеку в: bazel-bin/tensorflow/lite/c/libtensorflowlite_c.so .

Подробности см. на странице TensorFlow Lite C API .

библиотека С++
bazel build --config=elinux_aarch64 -c opt //tensorflow/lite:libtensorflowlite.so

Вы можете найти общую библиотеку в: bazel-bin/tensorflow/lite/libtensorflowlite.so .

В настоящее время нет простого способа извлечь все необходимые файлы заголовков, поэтому вы должны включить все файлы заголовков в tensorflow/lite/ из репозитория TensorFlow. Кроме того, вам понадобятся файлы заголовков от FlatBuffers и Abseil.

Так далее

Вы также можете создавать другие цели Bazel с помощью цепочки инструментов. Вот несколько полезных целей.

  • //tensorflow/lite/tools/benchmark:benchmark_model
  • //tensorflow/lite/примеры/label_image:label_image