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