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

התחל לעבוד עם TensorFlow Lite

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

1. בחרו דגם

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

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

השתמש במודל שהוכשר מראש

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

הדגמים שהוכשרו מראש כוללים:

ראה את הרשימה המלאה של דגמי מאומן מראש ב מודלס .

דגמים ממקורות אחרים

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

הכשר מחדש מודל (למידה בהעברה)

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

אתה יכול להשתמש בלמידת העברה כדי להתאים אישית מודלים שהוכשרו מראש ליישום שלך. למד כיצד לבצע למידת העברה בפרויקט זיהוי הפרחים באמצעות קוד הקוד TensorFlow.

הכשיר דגם מותאם אישית

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

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

2. להמיר את הדגם

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

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

ממיר TensorFlow Lite

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

הדוגמה הבאה מציגה מודל שמור של SavedModel המומר לפורמט TensorFlow Lite:

import tensorflow as tf

converter = tf.lite.TFLiteConverter.from_saved_model(saved_model_dir)
tflite_model = converter.convert()
open("converted_model.tflite", "wb").write(tflite_model)

ניתן להמיר דגמי TensorFlow 2.0 בצורה דומה.

ניתן להשתמש בממיר גם משורת הפקודה , אך מומלץ להשתמש ב- API של Python.

אפשרויות

הממיר יכול להמיר ממגוון סוגי קלט.

בעת המרת דגמי TensorFlow 1.x , אלה הם:

בעת המרת דגמי TensorFlow 2.x , אלה הם:

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

תאימות אופ

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

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

3. הפעל הסקה עם המודל

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

מתורגמן TensorFlow Lite

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

המתורגמן עובד על פני מספר פלטפורמות ומספק ממשק API פשוט להפעלת דגמי TensorFlow Lite מ- Java, Swift, Objective-C, C ++ ו- Python.

הקוד הבא מציג את המתורגמן שמופעל מג'אווה:

try (Interpreter interpreter = new Interpreter(tensorflow_lite_model_file)) {
  interpreter.run(input, output);
}

האצת GPU ונציגים

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

המהירות יכולה להיות משמעותית. לדוגמה, מודל סיווג תמונות של MobileNet v1 פועל במהירות גבוהה פי 5.5 בטלפון Pixel 3 כאשר משתמשים בהאצת GPU.

ניתן להגדיר את המתורגמן של TensorFlow Lite עם נציגים לשימוש בהאצת חומרה במכשירים שונים. ה- GPU Delegate מאפשר למתורגמן להפעיל פעולות מתאימות ב- GPU של המכשיר.

הקוד הבא מציג את השימוש ב- GPU Delegate:

GpuDelegate delegate = new GpuDelegate();
Interpreter.Options options = (new Interpreter.Options()).addDelegate(delegate);
Interpreter interpreter = new Interpreter(tensorflow_lite_model_file, options);
try {
  interpreter.run(input, output);
}

כדי להוסיף תמיכה במאיצי חומרה חדשים תוכלו להגדיר נציג משלכם .

אנדרואיד ו- iOS

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

כדי להשיג את הספריות הנדרשות, על מפתחי אנדרואיד להשתמש ב- TensorFlow Lite AAR . מפתחי iOS צריכים להשתמש ב- CocoaPods עבור Swift או Objective-C .

לינוקס

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

כדי להתקין במקום זאת את ספריית C ++, עיין בהוראות הבנייה של לוחות Raspberry Pi או Arm64 (עבור לוחות כגון Odroid C2, Pine64 ו- NanoPi).

מיקרו-בקרים

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

פעולות

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

אתה יכול להשתמש במפעילים מותאמים אישית כדי לכתוב פעולות משלך, או להעביר פעולות חדשות אל TensorFlow Lite.

גרסאות מפעיל מאפשרות להוסיף פונקציות ופרמטרים חדשים לפעולות קיימות.

4. אופטימיזציה של המודל שלך

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

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

ביצועים

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

כימות

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

ממיר TensorFlow Lite מקל על כימות דגמי TensorFlow. קוד הפייתון הבא SavedModel ושומר אותו בדיסק:

import tensorflow as tf

converter = tf.lite.TFLiteConverter.from_saved_model(saved_model_dir)
converter.optimizations = [tf.lite.Optimize.DEFAULT]
tflite_quantized_model = converter.convert()
open("converted_model.tflite", "wb").write(tflite_quantized_model)

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

למידע נוסף על כימות, ראה כימות לאחר אימון .

ערכת כלים לאופטימיזציה של מודלים

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

הצעדים הבאים

עכשיו שאתה מכיר את TensorFlow Lite, בדוק כמה מהמשאבים הבאים: