ml — למידת מכונה

המודול ml מכיל פונקציונליות לטעינה והרצה של מודלים של TensorFlow Lite על ה-OpenMV Cam. המודול חושף מחלקה אחת המיועדת למשתמש, ml.Model, אשר עוטפת את מחלקת ה-C הבסיסית Model עם נוחויות נוספות בצד Python (טעינה אוטומטית של תוויות והמרה אוטומטית מתמונה לטנזור).

תת-מודולים

class Model – מכל מודל

class ml.Model(path: str, *, postprocess: object = None) Model

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

postprocess היא פונקציה אופציונלית לעיבוד מאוחר שנקראת על ידי Model.predict לאחר ההסקה. היא מקבלת (model, inputs, outputs) ועשויה להחזיר כל ערך (למשל רשימה של תיבות תוחמות). כאשר היא מסופקת, מבצע העיבוד המאוחר מקבל את טנזורי הפלט הגולמיים של המודל (ללא דה-קוונטיזציה) לשם ביצועים.

בעת הבנייה, העוטף מנסה בנוסף לטעון קובץ .txt בעל אותו שם בסיס כמו path; אם נמצא, כל שורה נטענת אל Model.labels. אחרת Model.labels הוא None.

predict(inputs: list, *, callback: object = None) list

מריץ הסקה על המודל ומחזיר את טנזורי הפלט.

inputs הוא רשימה עם רשומה אחת לכל טנזור קלט של המודל. כל רשומה יכולה להיות:

  • ndarray שצורתו תואמת לרשומה המתאימה ב-Model.input_shape. הערכים עוברים קוונטיזציה באמצעות גורם הסקאלה ונקודת האפס של טנזור הקלט (קלטים מסוג float32 מועברים ללא שינוי).

  • אובייקט image.Image. העוטף עוטף אותו אוטומטית באובייקט ml.preprocessing.Normalization כדי להמירו לטנזור הצפוי.

  • פונקציה הניתנת לקריאה. היא תיקרא עם (bytearray, shape, dtype) ומצופה למלא את ה-bytearray בנתוני טנזור הקלט.

callback היא פונקציה אופציונלית לעיבוד מאוחר לכל קריאה. כאשר היא מסופקת, היא דורסת את postprocess שהוגדר בבנאי עבור קריאה זו בלבד. פונקציית ה-callback מקבלת (model, inputs, outputs) וערך ההחזרה שלה מוחזר על ידי predict.

מחזיר רשימה של פלטי ndarray, אחד לכל טנזור פלט של המודל. אם אין מבצע עיבוד מאוחר פעיל, הפלטים עוברים דה-קוונטיזציה ל-float32; אם מבצע עיבוד מאוחר פעיל, מועברים אליו במקום זאת טנזורי הפלט הגולמיים (בעזרת ה-dtype המקורי של כל טנזור).

len: int

גודל המודל הטעון בבתים.

ram: int

כמות ה-RAM שבה משתמש מאגר הטנזורים (tensor arena) של המודל, בבתים.

input_shape: list[tuple[int, ...]]

רשימה של tuples המציינת את הצורה של כל טנזור קלט.

input_dtype: list[str]

רשימה של מחרוזות בנות תו יחיד המציינת את ה-dtype של כל טנזור קלט: 'b' (int8), 'B' (uint8), 'h' (int16), 'H' (uint16), 'f' (float32).

input_scale: list[float]

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

input_zero_point: list[int]

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

output_shape: list[tuple[int, ...]]

רשימה של tuples המציינת את הצורה של כל טנזור פלט.

output_dtype: list[str]

רשימה של מחרוזות בנות תו יחיד המציינת את ה-dtype של כל טנזור פלט: 'b' (int8), 'B' (uint8), 'h' (int16), 'H' (uint16), 'f' (float32).

output_scale: list[float]

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

output_zero_point: list[int]

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

postprocess: object

הפונקציה לעיבוד מאוחר שסופקה לבנאי, או None.

labels: list[str]

רשימה של מחרוזות תוויות שנטענו מקובץ ה-.txt שלצד המודל, או None אם קובץ כזה אינו קיים.