Помогают защитить Большой Барьерный Риф с TensorFlow на Kaggle Присоединяйтесь вызов

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

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

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

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

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

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

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

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

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

Следующие инструкции были протестированы на Ubuntu 16.04.3 64-битной PC (AMD64) и TensorFlow Devel DOCKER изображения tensorflow / tensorflow: Devel .

Для кросс-компиляции TensorFlow Lite с Bazel выполните следующие действия:

Шаг 1. Установите Bazel

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

Шаг 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 .

Проверьте API TensorFlow Lite C страницу для деталей.

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

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

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

Так далее

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

  • // tenorflow / lite / tools / benchmark: benchmark_model
  • // тензорный поток / lite / examples / label_image: label_image