TensorLabel

כיתה ציבורית TensorLabel

TensorLabel הוא מעטפת שימוש עבור TensorBuffers עם תוויות משמעותיות על ציר.

לדוגמה, למודל סיווג תמונה עשוי להיות טנזור פלט עם צורה כמו {1, 10}, כאשר 1 הוא גודל האצווה ו-10 הוא מספר הקטגוריות. למעשה, בציר השני, נוכל לתייג כל תת-טנזור עם השם או התיאור של כל קטגוריה מתאימה. TensorLabel יכול לעזור בהמרת Tensor הפשוט ב- TensorBuffer למפה מתוויות מוגדרות מראש לתת-טנסורים. במקרה זה, אם יסופקו 10 תוויות עבור הציר השני, TensorLabel יכול להמיר את הטנסור המקורי {1, 10} למפה של 10 אלמנטים, שכל ערך שלה הוא Tensor בצורה {} (סקלרית). דוגמה לשימוש:

   TensorBuffer outputTensor = ...;
   List<String> labels = FileUtil.loadLabels(context, labelFilePath);
   // labels the first axis with size greater than one
   TensorLabel labeled = new TensorLabel(labels, outputTensor);
   // If each sub-tensor has effectively size 1, we can directly get a float value
   Map<String, Float> probabilities = labeled.getMapWithFloatValue();
   // Or get sub-tensors, when each sub-tensor has elements more than 1
   Map<String, TensorBuffer> subTensors = labeled.getMapWithTensorBuffer();
 

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

בונים ציבוריים

TensorLabel ( מפה < מספר שלם , רשימה < מחרוזת >> axisLabels, TensorBuffer tensorBuffer)
יוצר אובייקט TensorLabel המסוגל לתייג על צירים של טנסורים רב מימדיים.
TensorLabel ( רשימה < String > axisLabels, TensorBuffer tensorBuffer)
יוצר אובייקט TensorLabel המסוגל לתייג על ציר אחד של טנסורים רב מימדיים.

שיטות ציבוריות

רשימה < קטגוריה >
getCategoryList ()
מקבל רשימה של Category מהאובייקט TensorLabel .
מפה < מחרוזת , ציפה >
getMapWithFloatValue ()
מקבל מפה שממפה את התווית לצוף.
מפה < String , TensorBuffer >
getMapWithTensorBuffer ()
מקבל את המפה עם זוג של התווית וה-TensorBuffer המתאים.

שיטות בירושה

בונים ציבוריים

TensorLabel ציבורי ( מפה < מספר שלם , רשימה < מחרוזת >> axisLabels, TensorBuffer tensorBuffer)

יוצר אובייקט TensorLabel המסוגל לתייג על צירים של טנסורים רב מימדיים.

פרמטרים
ציר תוויות מפה, שהמפתח שלה הוא מזהה ציר (החל מ-0) והערך הוא תוויות מתאימות. הערה: גודל התוויות צריך להיות זהה לגודל הטנזור בציר זה.
tensorBuffer ה-TensorBuffer שיתויג.
זורק
NullPointerException אם axisLabels או tensorBuffer הם null, או כל ערך ב- axisLabels הוא null.
חריג טיעון לא חוקי אם מפתח כלשהו ב- axisLabels נמצא מחוץ לטווח (בהשוואה לצורת tensorBuffer , או לכל ערך (תוויות) יש גודל שונה עם tensorBuffer בממד הנתון.

TensorLabel ציבורי ( רשימה < String > axisLabels, TensorBuffer tensorBuffer)

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

הערה: התוויות מיושמות על הציר הראשון שגודלו גדול מ-1. לדוגמה, אם צורת הטנזור היא [1, 10, 3], התוויות יוחלו על ציר 1 (מזהה החל מ-0), והגודל של axisLabels צריך להיות גם 10.

פרמטרים
ציר תוויות רשימה של תוויות, שגודלן צריך להיות זהה לגודל הטנזור על הציר שיש לתייג.
tensorBuffer ה-TensorBuffer שיתויג.

שיטות ציבוריות

רשימה ציבורית < קטגוריה > getCategoryList ()

מקבל רשימה של Category מהאובייקט TensorLabel .

ציר התווית צריך להיות למעשה הציר האחרון (מה שאומר שלכל תת-טנזור שצוין על-ידי ציר זה צריך להיות גודל שטוח של 1), כך שכל תת-טנסור מסומן יכול להיות מומר לציון ערך צף. דוגמה: TensorLabel עם צורה {2, 5, 3} וציר 2 חוקי. אם הציר הוא 1 או 0, לא ניתן להמיר אותו Category .

getMapWithFloatValue() היא חלופה אך מחזירה Map כתוצאה מכך.

זורק
חריגה של מדינה בלתי חוקית אם הגודל של תת-טנזור בכל תווית אינו 1.

מפה ציבורית < String , Float > getMapWithFloatValue ()

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

getCategoryList() הוא API חלופי להשגת התוצאה.

זורק
חריגה של מדינה בלתי חוקית אם הגודל של תת-טנזור בכל תווית אינו 1.

מפה ציבורית < String , TensorBuffer > getMapWithTensorBuffer ()

מקבל את המפה עם זוג של התווית וה-TensorBuffer המתאים. אפשר את המיפוי רק בציר הראשון עם גודל גדול מ-1 כרגע.