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 שלך. אלו האפשרויות המועדפות:

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

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

ממשקי API וספריות פיתוח

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

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

ספריות

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

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

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

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

הצעדים הבאים