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

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

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

Предварительные условия

Вам понадобится установленный CMake и копия исходного кода TensorFlow. Подробности см. на странице «Сборка TensorFlow Lite с помощью 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 с неоном Совместимость с Raspberry Pi 3 и 4.
rpi0 ARMv6 Совместимость с Raspberry Pi Zero.
aarch64 aarch64 (64-разрядная версия ARM) Корал Мендель Linux 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 флаги компиляции -march=armv7-a -mfpu=neon-vfpv4