Сборка пакета TensorFlow Lite Python Wheel

На этой странице описывается, как собрать библиотеку TensorFlow Lite tflite_runtime Python для x86_64 и различных устройств ARM.

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

Предпосылки

Вам необходимо установить CMake и копию исходного кода TensorFlow. Подробности см. на странице Build TensorFlow Lite with CMake .

Чтобы собрать пакет PIP для вашей рабочей станции, вы можете запустить следующие команды.

PYTHON=python3 tensorflow/lite/tools/pip_package/build_pip_package_with_cmake.sh native

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

Для кросс-компиляции ARM рекомендуется использовать Docker, поскольку он упрощает настройку среды кросс-сборки. Также вам нужна target опция, чтобы выяснить целевую архитектуру.

В Makefile tensorflow/lite/tools/pip_package/Makefile есть вспомогательный инструмент, доступный для вызова команды сборки с использованием предварительно определенного контейнера Docker. На хост-компьютере Docker вы можете запустить команду сборки следующим образом.

make -C tensorflow/lite/tools/pip_package docker-build \
  TENSORFLOW_TARGET=<target> PYTHON_VERSION=<python3 version>

Доступные имена целей

Сценарию tensorflow/lite/tools/pip_package/build_pip_package_with_cmake.sh требуется целевое имя, чтобы определить целевую архитектуру. Вот список поддерживаемых целей.

Цель Целевая архитектура Комментарии
рука ARMv7 VFP с Neon Совместимость с Raspberry Pi 3 и 4
rpi0 ARMv6 Совместимость с Raspberry Pi Zero
аарх64 aarch64 (64-разрядная версия ARM) Коралл Мендель Линукс 4.0
Raspberry Pi с сервером Ubuntu 20.04.01 LTS, 64-разрядная версия
родной Ваша рабочая станция Сборка с "-mnative" оптимизацией
Ваша рабочая станция Цель по умолчанию

Примеры сборки

Вот несколько примеров команд, которые вы можете использовать.

цель armhf для Python 3.7

make -C tensorflow/lite/tools/pip_package docker-build \
  TENSORFLOW_TARGET=armhf PYTHON_VERSION=3.7

Цель aarch64 для Python 3.8

make -C tensorflow/lite/tools/pip_package docker-build \
  TENSORFLOW_TARGET=aarch64 PYTHON_VERSION=3.8

Как использовать пользовательский набор инструментов?

Если сгенерированные двоичные файлы несовместимы с вашей целью, вам необходимо использовать собственную цепочку инструментов или предоставить пользовательские флаги сборки. (Отметьте это , чтобы понять вашу целевую среду) В этом случае вам нужно изменить tensorflow/lite/tools/cmake/download_toolchains.sh , чтобы использовать свою собственную цепочку инструментов. Сценарий цепочки инструментов определяет следующие две переменные для сценария build_pip_package_with_cmake.sh .

Переменная Цель пример
ARMCC_PREFIX определяет префикс цепочки инструментов рука-linux-gnueabihf-
ARMCC_FLAGS флаги компиляции -март = armv7-a -mfpu = неон-vfpv4