TensorLabel, TensorBuffers के लिए एक यूटिलिटी रैपर है, जिसके ऐक्सिस पर सही लेबल मौजूद होते हैं.
उदाहरण के लिए, इमेज क्लासिफ़िकेशन मॉडल में {1, 10} के आकार वाला आउटपुट टेंसर हो सकता है,
जहां 1 बैच का साइज़ और 10 से कैटगरी की संख्या है. वहीं, दूसरे कदम पर, हम
हर सब-टेनर को उससे जुड़ी कैटगरी के नाम या ब्यौरे के साथ लेबल करें. TensorLabel से TensorBuffer के सादे टेन्सर को मैप में बदलने में मदद मिल सकती है
सब-टेंसर के लिए पहले से तय किए गए लेबल. इस मामले में, अगर दूसरे ऐक्सिस के लिए 10 लेबल दिए गए हैं, तो TensorLabel, मूल {1, 10} टेन्सर को 10 एलिमेंट मैप में बदल सकता है, जिसमें से हर एक वैल्यू
टेन्सर का आकार {} (अदिश) है. इस्तेमाल का उदाहरण:
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(मैप<Integer, List<स्ट्रिंग>> ऐक्सिसलेबल, TensorBuffer tensorBuffer)
ऐसा TensorLabel ऑब्जेक्ट बनाता है, जो मल्टी-डाइमेंशन टेंसर के ऐक्सिस पर लेबल कर सकता है.
|
|
|
TensorLabel(सूची<स्ट्रिंग> ऐक्सिसलेबल, TensorBuffer tensorBuffer)
ऐसा TensorLabel ऑब्जेक्ट बनाता है, जो मल्टी-डाइमेंशन टेंसर के एक ऐक्सिस पर लेबल कर सकता है.
|
सार्वजनिक तरीके
| सूची<कैटगरी> |
getCategoryList()
TensorLabel ऑब्जेक्ट से Category की सूची हासिल करता है. |
| मैप<स्ट्रिंग, फ़्लोट> |
getMapWithFloatValue()
इससे एक मैप मिलता है, जिसमें लेबल को फ़्लोट करने के लिए मैप किया जाता है.
|
| मैप<स्ट्रिंग, TensorBuffer> |
getMapWithTensorBuffer()
लेबल और उससे जुड़े TensorBuffer के जोड़े के साथ मैप हासिल करता है.
|
इनहेरिट किए गए तरीके
पब्लिक कंस्ट्रक्टर
सार्वजनिक TensorLabel (मैप<Integer, सूची<स्ट्रिंग>> ऐक्सिसलेबल, TensorBuffer tensorBuffer)
ऐसा TensorLabel ऑब्जेक्ट बनाता है, जो मल्टी-डाइमेंशन टेंसर के ऐक्सिस पर लेबल कर सकता है.
पैरामीटर
| axisLabels | ऐसा मैप जिसका ऐक्सिस आईडी (0 से शुरू होने वाला) होता है और वैल्यू उससे जुड़ी होती है लेबल. ध्यान दें: लेबल का साइज़, उस ऐक्सिस पर मौजूद टेंसर के साइज़ के बराबर होना चाहिए. |
|---|---|
| tensorBuffer | TensorBuffer को लेबल किया जाना है. |
थ्रो
| NullPointerException | अगर axisLabels या tensorBuffer खाली है या कोई वैल्यू नहीं है
axisLabels में वैल्यू शून्य है. |
|---|---|
| IllegalArgumentException | अगर axisLabels में कोई कुंजी सीमा से बाहर है (इसकी तुलना में
tensorBuffer का आकार या किसी भी वैल्यू (लेबल) का साइज़, दिए गए डाइमेंशन में tensorBuffer से अलग है.
|
सार्वजनिक TensorLabel (सूची<स्ट्रिंग> ऐक्सिसलेबल, TensorBuffer tensorBuffer)
ऐसा TensorLabel ऑब्जेक्ट बनाता है, जो मल्टी-डाइमेंशन टेंसर के एक ऐक्सिस पर लेबल कर सकता है.
ध्यान दें: लेबल उस पहले ऐक्सिस पर लागू किए जाते हैं जिसका साइज़ 1 से बड़ा होता है. उदाहरण के लिए, अगर
टेंसर का आकार [1, 10, 3] है और लेबल, ऐक्सिस 1 पर लागू होंगे (आईडी यहां से शुरू होगा
0) के साथ-साथ, axisLabels का साइज़ भी 10 होना चाहिए.
पैरामीटर
| axisLabels | लेबल की ऐसी सूची जिसका साइज़, टेंसर के साइज़ के बराबर होना चाहिए ऐक्सिस को लेबल किया जाएगा. |
|---|---|
| tensorBuffer | TensorBuffer को लेबल किया जाना है. |
सार्वजनिक तरीके
सार्वजनिक सूची<कैटगरी> getCategoryList ()
TensorLabel ऑब्जेक्ट से Category की सूची हासिल करता है.
लेबल का ऐक्सिस, आखिरी ऐक्सिस होना चाहिए. इसका मतलब है कि हर सब-टेंसर
इस ऐक्सिस से तय किया गया साइज़ 1 होना चाहिए, ताकि लेबल किए गए हर सब-टेंसर का साइज़
को फ़्लोट वैल्यू स्कोर में बदल दिया जाता है. उदाहरण: {2, 5, 3} के आकार वाला TensorLabel
और ऐक्सिस 2 मान्य है. अगर ऐक्सिस 1 या 0 है, तो उसे Category में नहीं बदला जा सकता.
getMapWithFloatValue() एक वैकल्पिक वैल्यू है, लेकिन Map को इस तौर पर दिखाता है
दिखाई देता है.
थ्रो
| IllegalStateException | अगर हर लेबल पर सब टेंसर का साइज़ 1 नहीं है. |
|---|
सार्वजनिक मैप<स्ट्रिंग, फ़्लोट> getMapWithFloatValue ()
इससे एक मैप मिलता है, जिसमें लेबल को फ़्लोट करने के लिए मैप किया जाता है. सिर्फ़ पहले ऐक्सिस पर मैप करने की अनुमति दें जिसका साइज़ बड़ा हो 1 से ज़्यादा हो और ऐक्सिस, आखिरी ऐक्सिस होना चाहिए (इसका मतलब है कि हर सब-टेंसर इस ऐक्सिस का साइज़ 1 होना चाहिए).
getCategoryList(), नतीजा पाने का वैकल्पिक एपीआई है.
थ्रो
| IllegalStateException | अगर हर लेबल पर सब टेंसर का साइज़ 1 नहीं है. |
|---|
सार्वजनिक मैप<स्ट्रिंग, TensorBuffer> getMapWithTensorBuffer ()
लेबल और उससे जुड़े TensorBuffer के जोड़े के साथ मैप हासिल करता है. सिर्फ़ पहले ऐक्सिस पर मैपिंग की जा रही है, जिसका साइज़ फ़िलहाल 1 से ज़्यादा है.