На этой странице описывается, как собрать библиотеку Python LiteRT tflite_runtime
для x86_64 и различных устройств ARM.
Следующие инструкции были протестированы на 64-разрядном ПК Ubuntu 16.04.3 (AMD64), macOS Catalina (x86_64) и TensorFlow devel Docker image tensorflow/tensorflow:devel .
Предварительные условия
Вам понадобится установленный CMake и копия исходного кода TensorFlow. Подробности см. на странице «Сборка LiteRT с 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 |