TensorLabel

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

TensorLabel הוא wrapper במסגרת TensorBuffers עם תוויות משמעותיות על ציר.

לדוגמה, מודל סיווג של תמונות עשוי להיות טינזור של פלט עם הצורה {1, 10}, 1 מציין את גודל הקבוצה ו-10 מייצג את מספר הקטגוריות. למעשה, בציר השני יכולנו מוסיפים תווית לכל תת-משתנה בשם או בתיאור של כל קטגוריה מתאימה. TensorLabel יכול לעזור בהמרה של Tensor פשוט בTensorBuffer למפה תוויות מוגדרות מראש לקיזורי משנה. במקרה הזה, אם תספקו 10 תוויות לציר השני, TensorLabel יוכל להמיר את {1, 10} Tensor המקורי למפת רכיבים של 10, שכל ערך שלו is 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();
 

הערה: בשלב זה אנחנו תומכים בהמרה מסוג tensor למיפוי עבור התווית הראשונה בגודל גדול יותר מ-1.

בנייה ציבורית

TensorLabel(מפה<IntegerList<String>> שינוי תוויות, TensorBuffer tensorBuffer)
יוצרת אובייקט TensorLabel שיכול להוסיף תוויות לצירים של TensorLabel.
TensorLabel(רשימה<String> sectionLabels, TensorBuffer tensorBuffer)
יוצרת אובייקט TensorLabel שיכול להוסיף תווית על ציר אחד של טנסורים רב-ממדיים.

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

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

שיטות שעברו בירושה

בנייה ציבורית

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

יוצרת אובייקט TensorLabel שיכול להוסיף תוויות לצירים של TensorLabel.

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

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

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

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

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

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

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

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

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

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

קליעות
IllegalStateException אם הגודל של תת-משתנה בכל תווית הוא לא 1.

ציבורי מפה<מחרוזתצפה> getMapWithFloatValue ()

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

getCategoryList() הוא API חלופי לקבלת התוצאה.

קליעות
IllegalStateException אם הגודל של תת-משתנה בכל תווית הוא לא 1.

ציבורי מפה<StringTensorBuffer> getMapWithTensorBuffer ()

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