דף זה תורגם על ידי Cloud Translation API.
Switch to English

צמצם את גודל בינארי של TensorFlow Lite

סקירה כללית

בעת פריסת דגמים ליישומי ODML (מכשירי למידה במכונה), חשוב להיות מודעים לזיכרון המצומצם הקיים במכשירים ניידים. גדלים בינאריים של מודלים קשורים זה לזה למספר האופציות המשמשות במודל. TensorFlow Lite מאפשרת לך להפחית בגדלים בינאריים של הדגם באמצעות מבנים סלקטיביים. בונים סלקטיביים מדלגים על פעולות שאינן בשימוש במערך הדגמים שלך ומייצרים ספרייה קומפקטית רק עם זמן הריצה וגרעיני ה- OP הנדרשים כדי שהמודל יפעל במכשיר הנייד שלך.

מבנה סלקטיבי חל על שלוש ספריות הפעילות הבאות.

  1. ספריית ops מובנית TensorFlow Lite
  2. אפשרויות מותאמות אישית של TensorFlow Lite
  3. בחר בספריית ops TensorFlow

הטבלה שלהלן מדגימה את ההשפעה של מבנים סלקטיביים עבור מקרים מסוימים לשימוש נפוץ:

שם המודל תְחוּם ארכיטקטורת יעד גודל קובץ AAR
Mobilenet_1.0_224 (לצוף) סיווג תמונה armeabi-v7a tensorflow-lite.aar (296,635 בתים)
arm64-v8a tensorflow-lite.aar (382,892 בתים)
לְתַבֵּל מיצוי צלילי קול armeabi-v7a tensorflow-lite.aar (375,813 בתים)
tensorflow-lite-select-tf-ops.aar (1,676,380 בתים)
arm64-v8a tensorflow-lite.aar (421,826 בתים)
tensorflow-lite-select-tf-ops.aar (2,298,630 בתים)
i3d-kinetics-400 סיווג וידיאו armeabi-v7a tensorflow-lite.aar (240,085 בתים)
tensorflow-lite-select-tf-ops.aar (1,708,597 בתים)
arm64-v8a tensorflow-lite.aar (273,713 בתים)
tensorflow-lite-select-tf-ops.aar (2,339,697 בתים)

סוגיות / מגבלות ידועות

  1. אין תמיכה כרגע ב- Build Selective עבור C API ו- iOS.

בנה באופן סלקטיבי TensorFlow Lite עם בזל

סעיף זה מניח שהורדת את קודי המקור של TensorFlow והגדרת ל- Bazel את סביבת הפיתוח המקומית .

בניית קבצי AAR לפרויקט אנדרואיד

אתה יכול לבנות את ה- TensorFlow Lite AARs המותאמים אישית על ידי מתן נתיבי קובץ המודל שלך באופן הבא.

sh tensorflow/lite/tools/build_aar.sh \
  --input_models=/a/b/model_one.tflite,/c/d/model_two.tflite \
  --target_archs=x86,x86_64,arm64-v8a,armeabi-v7a

הפקודה לעיל תייצר את קובץ ה- AAR bazel-bin/tmp/tensorflow-lite.aar עבור TensorFlow Lite מובנה ומותאם אישית; ובאופן אופציונלי, יוצר את קובץ ה- bazel-bin/tmp/tensorflow-lite-select-tf-ops.aar אם הדגמים שלך מכילים אפשרויות Select TensorFlow. שים לב כי זה בונה AAR "שמן" עם כמה ארכיטקטורות שונות; אם אינך זקוק לכולם, השתמש בקבוצת המשנה המתאימה לסביבת הפריסה שלך.

שימוש מתקדם: בנה עם אופציות מותאמות אישית

אם פיתחת דגמי Tensorflow Lite עם אופציות מותאמות אישית, אתה יכול לבנות אותם על ידי הוספת הדגלים הבאים לפקודת build:

sh tensorflow/lite/tools/build_aar.sh \
  --input_models=/a/b/model_one.tflite,/c/d/model_two.tflite \
  --target_archs=x86,x86_64,arm64-v8a,armeabi-v7a \
  --tflite_custom_ops_srcs=/e/f/file1.cc,/g/h/file2.h \
  --tflite_custom_ops_deps=dep1,dep2

הדגל tflite_custom_ops_srcs מכיל קבצי מקור של tflite_custom_ops_deps המותאמות אישית שלך והדגל tflite_custom_ops_deps מכיל תלות לבניית קבצי המקור האלה. שים לב שתלות זו חייבת להתקיים ברפאו TensorFlow.

בנה באופן סלקטיבי TensorFlow Lite עם Docker

סעיף זה מניח שהתקנת את Docker במחשב המקומי שלך ובנית את קובץ הדוקר TensorFlow Lite .

בניית קבצי AAR לפרויקט אנדרואיד

הורד את התסריט לבנייה עם Docker על ידי הפעלה:

curl -o build_aar_with_docker.sh \
  https://raw.githubusercontent.com/tensorflow/tensorflow/master/tensorflow/lite/tools/build_aar_with_docker.sh &&
chmod +x build_aar_with_docker.sh

לאחר מכן אתה יכול לבנות את TensorFlow Lite AAR המותאם אישית על ידי מתן נתיבי קובץ המודל שלך באופן הבא.

sh build_aar_with_docker.sh \
  --input_models=/a/b/model_one.tflite,/c/d/model_two.tflite \
  --target_archs=x86,x86_64,arm64-v8a,armeabi-v7a \
  --checkpoint=master

דגל checkpoint הוא התחייבות, סניף או תגית של ה- repens TensorFlow שברצונך לבדוק לפני שאתה בונה את הספריות. הפקודה שלעיל תייצר את קובץ ה- AAR tensorflow-lite.aar עבור TensorFlow Lite מובנים ומותאמים אישית, ובאופן אופציונלי את הקובץ AAR tensorflow-lite-select-tf-ops.aar עבור בחירת TensorFlow ops בספרייה הנוכחית שלך.

הוסף קבצי AAR לפרויקט

הוסף קבצי AAR על ידי ייבוא ישיר של AAR לפרויקט שלך , או על ידי פרסום ה- AAR המותאם אישית למאגר המקומי שלך ב- Maven . שים לב שעליך להוסיף את קבצי ה- AAR גם עבור tensorflow-lite-select-tf-ops.aar אם אתה יוצר אותם.