ml.preprocessing — עיבוד מקדים של ML¶
המודול ml.preprocessing מכיל מחלקות לעיבוד מקדים של תמונות לשימוש עם מודלים של למידת מכונה.
class Normalization – נרמול תמונה¶
האובייקט Normalization ממיר אובייקטים מסוג image.Image לטנזורי קלט מסוג ndarray לשימוש עם ml.Model.predict(). הוא נוצר אוטומטית על ידי האובייקט ml.Model כאשר תמונה מועברת אל ml.Model.predict(), אך ניתן ליצור אותו ידנית כדי לשלוט בהמרה (סקאלה, ממוצע/סטיית תקן, ROI).
- class ml.preprocessing.Normalization(scale: tuple[float, float] = (0.0, 1.0), mean: tuple[float, float, float] = (0.0, 0.0, 0.0), stdev: tuple[float, float, float] = (1.0, 1.0, 1.0), roi: tuple[int, int, int, int] = None)¶
יוצר אובייקט
Normalization.scaleהוא טווח הערכים(min, max)שטנזורי קלט מסוג נקודה צפה מצפים לו לאחר הנרמול (למשל(0.0, 1.0)או(-1.0, 1.0)). מתעלם ממנו עבור טנזורי קלט מסוגuint8ו-int8.meanהוא הממוצע לכל ערוץ(R, G, B)המוחסר מהתמונה לאחר ההכפלה בסקאלה. עבור טנזורים בגווני אפור, הממוצע מצומצם לערך לומה יחיד באמצעות0.299*R + 0.587*G + 0.114*B. מתעלם ממנו עבור טנזורי קלט מסוגuint8ו-int8.stdevהוא סטיית התקן לכל ערוץ(R, G, B)שבה מחולקת התמונה לאחר חיסור הממוצע. עבור טנזורים בגווני אפור, סטיית התקן מצומצמת לערך לומה יחיד באמצעות0.299*R + 0.587*G + 0.114*B. מתעלם ממנו עבור טנזורי קלט מסוגuint8ו-int8.roiהוא אזור עניין אופציונלי(x, y, w, h)בתוך תמונת הקלט שיש לחתוך. אםNone, נעשה שימוש בתמונה המלאה. האזור החתוך ממורכז, מוגדל בהגדלה דו-ליניארית (תוך שמירה על יחס הממדים בעזרת ריפוד שחור) לממדי טנזור הקלט של המודל.- __call__(image: image.Image) Normalization¶
- __call__(buffer: bytearray, shape: tuple[int, int, int, int], dtype: int) None
כאשר נקרא עם ארגומנט יחיד מסוג
image.Image, מחזיר אובייקטNormalizationחדש המקושר לאותה תמונה. האובייקט המקושר הוא מה ש-ml.Model.predict()מפעיל באופן פנימי כדי למלא את טנזור הקלט. אםroiלא הוגדר במופע המקורי, הוא מאותחל לגודל התמונה המלא.כאשר נקרא עם
(buffer, shape, dtype), ממלא אתbufferבמקום בטנזור הקלט המנורמל עבור התמונה שקושרה קודם לכן.shapeחייב להיות(1, H, W, C)כאשרCשווה ל-1(גווני אפור) או3(RGB).dtypeהוא קוד הטיפוס של ulab numpy (למשלord('f')עבור float32,ord('b')עבור int8,ord('B')עבור uint8). טנזורי נקודה צפה מיישמים אתscale,meanו-stdev; טנזורי מספרים שלמים נכתבים ישירות (עם היסט עבורint8).