בניית חבילת גלגלי Python של LiteRT

בדף הזה מוסבר איך לפתח את גרסת ה-Python tflite_runtime של LiteRT ל-x86_64 ולמכשירי ARM שונים.

ההוראות הבאות נבדקו ב-Ubuntu 16.04.3 64-bit PC (AMD64) , macOS Catalina (x86_64) וקובץ אימג' של Docker של TensorFlow 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 בשביל להפעיל פקודת build באמצעות קונטיינר מוגדר מראש של Docker. ב במחשב מארח של Docker, אפשר להריץ פקודת build בתור הפעולות הבאות.

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) נדרש סקריפט שם יעד כדי להבין את ארכיטקטורת היעד. כאן מופיעה רשימת הכלים הנתמכים יעדים.

יעד ארכיטקטורת יעד תגובות
Armhf ARMv7 VFP עם ניאון תאימות ל-Raspberry Pi בגרסאות 3 ו-4
rpi0 ARMv6 תאימות ל-Raspberry Pi Zero
aarch64 aarch64 (ARM 64-bit) Coral Mendel Linux 4.0
Raspberry Pi עם Ubuntu Server 20.04.01 LTS 64-bit
מותאמת תחנת העבודה שלך הוא build באמצעות "-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

איך משתמשים ב-toolchain בהתאמה אישית?

אם הקבצים הבינאריים שנוצרו לא תואמים ליעד, צריך להשתמש תוכלו ליצור רשימת כלים משלכם או לספק דגלי build בהתאמה אישית. (המחאה הזה להבין את סביבת היעד). במקרה כזה, צריך לשנות tensorflow/lite/tools/cmake/download_toolchains.sh כדי להשתמש במערכת כלים משלך. הסקריפט Toolchain מגדיר את שני המשתנים הבאים סקריפט build_pip_package_with_cmake.sh.

משתנה מטרה דוגמה
ARMCC_PREFIX מגדיר קידומת של שרשור כלים arm-linux-gnueabihf-
ARMCC_FLAGS דגלים של הידור -march=armv7-a -mfpu=neon-vfpv4