На этой странице описывается, как создавать библиотеки 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