Сборка LiteRT Python Wheel для AXC F2152
В прошлом месяце Google анонсировал ребрендинг/переименование TensorFlow Lite в LiteRT (ссылка на статью). Теперь это станет частью их обновленной попытки оставаться актуальными в парадигме Edge-вычислений с Google AI Edge.
Я уже делал доступным TensorFlow Lite (вместе с numpy и OpenCV) через приложение для образовательных целей в PLCnext Store (ссылка на приложение). Однако приложение ограничивает пользователей использованием предупакованного решения, даже если они хотят попробовать что-то совершенно другое или включить другие библиотеки.
Учитывая, что я недавно обновлял приложение и мне нужно было освежить в памяти, как это сделать, я решил создать этот пост и объяснить, как кросскомпилировать TensorFlow Lite Runtime для AXC F 2152.
Процесс запуска на последнем шаге может показаться довольно запутанным, поскольку публично доступные библиотеки не предлагают прямой поддержки архитектуры процессора AXC F 2152, поэтому кросскомпиляция необходима.
ПРИМЕЧАНИЕ: Эта процедура тестировалась на:
- Виртуализированном терминале UBUNTU 22.04.
- Виртуальная машина имеет 27 ГБ ОЗУ и дополнительный файл подкачки 16 ГБ ОЗУ [Крайне важно для процесса кросскомпиляции] и работает на 24 ядрах.
- Хост-машина с 32 ГБ ОЗУ и процессором Core i7-12850HX.
ПРИМЕЧАНИЕ 2: Количество ОЗУ позволяет держать кросскомпиляцию стабильной и запускать её максимально быстро. Настройка с меньшим ОЗУ может не справиться с процессом кросскомпиляции или это может занять слишком много времени (до нескольких часов по моему опыту).
- Скачайте исходный код TensorFlow нужной версии для компиляции. https://github.com/tensorflow/tensorflow/releases/
- Распакуйте содержимое в папку по вашему выбору. Я буду использовать «myfolder» в следующих записях ниже.
- Перейдите к «Makefile» в «/myfolder/tensorflow-2.XX.0/tensorflow/lite/tools/pip_package/Makefile» и измените базовый образ, версию Python и версию numpy в соответствии с вашей системой. Напр.:
- Перейдите к «downloadtoolchains.sh» в «/myfolder/tensorflow-2.XX.0/tensorflow/lite/tools/cmake/download_toolchains.sh» и измените флаги, которые идут по умолчанию для armh, как показано здесь:
Из папки TensorFlow (/myfolder/tensorflow-2.XX.0) выполните команду: «make -C tensorflow/lite/tools/pip_package docker-build \ TENSORFLOW_TARGET=armhf PYTHON_VERSION=3.10»
ПРЕДУПРЕЖДЕНИЕ: Процесс предыдущего шага может занять много времени, проявите терпение.
После завершения процесса возьмите Python wheel из «tensorflow-2.XX.0/tensorflow/lite/tools/pip_package/gen/tflite_pip/python3.10/dist» на ваш контроллер и установите его с помощью pip.
УВЕДОМЛЕНИЕ: По моему опыту процесс работает для Python 3.9, 3.10 и 3.11 и для релизов 2.14 до 2.16.2. Однако релизы выше версии 2.17 имеют баг. У меня есть открытый issue в репозитории TensorFlow на GitHub, который можно отслеживать здесь. Надеюсь, он будет решен в следующих релизах.
Примечание:
Блог Makers демонстрирует приложения и пользовательские истории членов сообщества, которые не тестировались и не проверялись Phoenix Contact. Используйте их на свой страх и риск.
Промышленные технологии
- Обычная токарная обработка: экспертное изготовление стальных деталей от простых к сложным
- Революционизируем цепочки поставок, чтобы закончить глобальный дефицит полупроводников
- Фаски и скругления: как дизайн краев влияет на стоимость обработки
- Реакционное литьё под давлением (RIM): процесс, преимущества и применения
- Как военные стратегии могут поднять клиентский опыт в ритейле
- Ключевые методы инспекции печатных плат для обеспечения качества
- От перфокарт к жестким дискам: эволюция механических носителей
- Топ-3 часто задаваемых вопроса о технологии поверхностного монтажа (SMT)
- XDREAM: ИИ генерирует изображения, которые «любят» нейроны зрительной коры
- Создание устойчивой цепочки поставок, готовой к любому вызову