TensorFlow Lite עבור אנדרואיד

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

מפת דרכים למידה

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

מודלים של למידת מכונה

TensorFlow Lite משתמש במודלים של TensorFlow המומרים לפורמט קטן יותר, נייד ויעיל יותר של מודל למידת מכונה. אתה יכול להשתמש בדגמים מובנים מראש עם TensorFlow Lite באנדרואיד, או לבנות דגמי TensorFlow משלך ולהמיר אותם לפורמט TensorFlow Lite.

דף זה דן בשימוש במודלים של למידת מכונה שכבר נבנו ואינו מכסה בנייה, הדרכה, בדיקה או המרת מודלים. למד עוד על איסוף, שינוי, בנייה והמרה של מודלים של למידת מכונה עבור TensorFlow Lite בסעיף מודלים .

הפעל דגמים באנדרואיד

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

זרימת ביצוע פונקציונלית עבור דגמי TensorFlow Lite באפליקציות אנדרואיד

איור 1. זרימת ביצוע פונקציונלית עבור דגמי TensorFlow Lite באפליקציות אנדרואיד.

ברמת העיצוב הפונקציונלי, אפליקציית האנדרואיד שלך צריכה את האלמנטים הבאים כדי להפעיל דגם TensorFlow Lite:

  • סביבת זמן ריצה של TensorFlow Lite לביצוע המודל
  • מודל מטפל בקלט כדי להפוך נתונים לטנזורים
  • דגם מטפל פלט כדי לקבל טנסור של תוצאות פלט ולפרש אותם כתוצאות חיזוי

הסעיפים הבאים מתארים כיצד הספריות והכלים של TensorFlow Lite מספקים את האלמנטים הפונקציונליים הללו.

בנו אפליקציות עם TensorFlow Lite

סעיף זה מתאר את הנתיב המומלץ והנפוץ ביותר להטמעת TensorFlow Lite באפליקציית Android שלך. עליך להקדיש את מירב תשומת הלב לקטעי סביבת זמן הריצה וספריות הפיתוח . אם פיתחת מודל מותאם אישית, הקפד לעיין בסעיף נתיבי פיתוח מתקדמים .

אפשרויות סביבת זמן ריצה

ישנן מספר דרכים שבהן תוכל להפעיל סביבת זמן ריצה לביצוע דגמים באפליקציית Android שלך. אלו האפשרויות המועדפות:

באופן כללי, עליך להשתמש בסביבת זמן הריצה המסופקת על ידי שירותי Google Play מכיוון שהיא חסכונית יותר במקום מהסביבה הרגילה מכיוון שהיא נטענת באופן דינמי, ושומרת על גודל האפליקציה שלך קטן יותר. שירותי Google Play גם משתמש באופן אוטומטי במהדורה העדכנית והיציבה ביותר של זמן הריצה של TensorFlow Lite, ומעניק לך תכונות נוספות וביצועים משופרים לאורך זמן. אם אתה מציע את האפליקציה שלך במכשירים שאינם כוללים שירותי Google Play או שאתה צריך לנהל מקרוב את סביבת זמן הריצה ML שלך, עליך להשתמש בזמן הריצה הסטנדרטי של TensorFlow Lite. אפשרות זו מאגדת קוד נוסף באפליקציה שלך, ומאפשרת לך לקבל שליטה רבה יותר על זמן הריצה של ML באפליקציה שלך במחיר של הגדלת גודל ההורדה של האפליקציה שלך.

אתה ניגש לסביבות זמן ריצה אלה באפליקציית Android שלך על ידי הוספת ספריות פיתוח של TensorFlow Lite לסביבת פיתוח האפליקציה שלך. למידע על אופן השימוש בסביבות זמן הריצה הסטנדרטיות באפליקציה שלך, עיין בסעיף הבא.

פיתוח API וספריות

ישנם שני ממשקי API עיקריים שבהם אתה יכול להשתמש כדי לשלב מודלים של למידה חישובית של TensorFlow Lite באפליקציית Android שלך:

ה- API של Interpreter מספק מחלקות ושיטות להפעלת מסקנות עם מודלים קיימים של TensorFlow Lite. TensorFlow Lite Task API עוטף את Interpreter API ומספק ממשק תכנות ברמה גבוהה יותר לביצוע משימות למידת מכונה נפוצות בטיפול בנתוני חזותיים, אודיו וטקסט. עליך להשתמש ב-Task API אלא אם תגלה שהוא לא תומך במקרה השימוש הספציפי שלך.

ספריות

אתה יכול לגשת לממשקי ה-API של המשימות או ל-API של Interpreter באמצעות שירותי Google Play . אתה יכול גם להשתמש בספריות העצמאיות עבור משימות TensorFlow Lite או בליבת TensorFlow Lite וספריות תמיכה באפליקציית Android שלך. לפרטי תכנות על שימוש בספריות TensorFlow Lite ובסביבות זמן ריצה, ראה כלי פיתוח עבור אנדרואיד .

להשיג דגמים

הפעלת דגם באפליקציית אנדרואיד דורשת דגם בפורמט TensorFlow Lite. אתה יכול להשתמש במודלים שנבנו מראש או לבנות אחד עם TensorFlow ולהמיר אותו לפורמט Lite. למידע נוסף על השגת דגמים עבור אפליקציית Android שלך, עיין בסעיף דגמי TensorFlow Lite.

טיפול בנתוני קלט

כל נתונים שתעביר למודל ML חייב להיות טנסור עם מבנה נתונים ספציפי, הנקרא לעתים קרובות צורת הטנזור. כדי לעבד נתונים עם מודל, קוד האפליקציה שלך חייב להפוך נתונים מהפורמט המקורי שלו, כגון תמונה, טקסט או נתוני אודיו, לטנזור בצורה הנדרשת עבור המודל שלך.

ספריית המשימות TensorFlow Lite מספקת לוגיקת טיפול בנתונים להפיכת נתוני חזותיים, טקסט ואודיו לטנזורים עם הצורה הנכונה לעיבוד על ידי מודל TensorFlow Lite.

הפעל מסקנות

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

המהירות שבה מודל יכול ליצור הסקה במכשיר מסוים תלויה בגודל הנתונים המעובדים, במורכבות המודל ובמשאבי המחשוב הזמינים כגון זיכרון ו-CPU, או מעבדים מיוחדים הנקראים מאיצים . מודלים של למידת מכונה יכולים לפעול מהר יותר על מעבדים מיוחדים אלה כגון יחידות עיבוד גרפיות (GPUs) ויחידות עיבוד טנזור (TPUs), באמצעות מנהלי התקנים של TensorFlow Lite הנקראים Delegates . למידע נוסף על נציגים והאצת חומרה של עיבוד מודלים, עיין בסקירת האצת החומרה .

טפל בתוצאות הפלט

מודלים יוצרים תוצאות חיזוי כטנסורים, אשר חייבות להיות מטופלות על ידי אפליקציית Android שלך על ידי נקיטת פעולה או הצגת תוצאה למשתמש. תוצאות פלט של מודל יכולות להיות פשוטות כמו מספר התואם לתוצאה בודדת (0 = כלב, 1 = חתול, 2 = ציפור) עבור סיווג תמונה, ועד לתוצאות מורכבות הרבה יותר, כגון תיבות תוחמות מרובות עבור מספר אובייקטים מסווגים ב- תמונה, עם דירוג ביטחון חיזוי בין 0 ל-1.

מסלולי פיתוח מתקדמים

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

סביבות זמן ריצה מתקדמות

בנוסף לסביבות זמן הריצה הסטנדרטיות ולסביבות זמן הריצה של שירותי Google Play עבור TensorFlow Lite, ישנן סביבות זמן ריצה נוספות בהן תוכל להשתמש עם אפליקציית Android שלך. השימוש הסביר ביותר עבור סביבות אלה הוא אם יש לך מודל למידת מכונה המשתמש בפעולות ML שאינן נתמכות על ידי סביבת זמן הריצה הסטנדרטית עבור TensorFlow Lite.

  • גמיש את זמן הריצה עבור TensorFlow Lite
  • זמן ריצה של TensorFlow Lite נבנה בהתאמה אישית

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

ממשקי API של C ו-C++

TensorFlow Lite מספק גם API להפעלת מודלים המשתמשים ב-C ו-C++. אם האפליקציה שלך משתמשת ב- Android NDK , עליך לשקול להשתמש ב-API זה. ייתכן שתרצה לשקול להשתמש ב-API זה אם אתה רוצה להיות מסוגל לשתף קוד בין פלטפורמות מרובות. למידע נוסף על אפשרות פיתוח זו, עיין בדף כלי הפיתוח .

ביצוע מודל מבוסס שרת

באופן כללי, עליך להפעיל דגמים באפליקציה שלך במכשיר אנדרואיד כדי לנצל את השהייה נמוכה יותר ושיפור פרטיות הנתונים עבור המשתמשים שלך. עם זאת, ישנם מקרים שבהם הפעלת דגם על שרת ענן, מחוץ למכשיר, היא פתרון טוב יותר. לדוגמה, אם יש לך דגם גדול שאינו נדחס בקלות לגודל שמתאים למכשירי האנדרואיד של המשתמשים שלך, או שניתן להפעיל אותו בביצועים סבירים במכשירים אלה. גישה זו עשויה להיות גם הפתרון המועדף עליך אם ביצועים עקביים של הדגם על פני מגוון רחב של מכשירים נמצאים בראש סדר העדיפויות.

Google Cloud מציע חבילה מלאה של שירותים להפעלת מודלים של למידה חישובית של TensorFlow. למידע נוסף, עיין בדף מוצרי בינה מלאכותית ולמידת מכונה של Google Cloud.

פיתוח ואופטימיזציה של מודלים בהתאמה אישית

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

הצעדים הבאים