TensorLabel

पब्लिक क्लास TensorLabel

TensorLabel, TensorBuffers के लिए इस्तेमाल किया जाने वाला रैपर है. ऐक्सिस पर इसके लेबल के साथ काम के लेबल होते हैं.

उदाहरण के लिए, इमेज क्लासिफ़िकेशन मॉडल में {1, 10} आकार वाला आउटपुट टेंसर हो सकता है. इसमें 1, बैच साइज़ और 10 कैटगरी की संख्या है. असल में, दूसरे ऐक्सिस पर हम हर सब-टेंसर को हर कैटगरी के नाम या जानकारी के साथ लेबल कर सकते हैं. TensorLabel की मदद से, TensorBuffer में मौजूद सादे टेन्सर को पहले से तय लेबल से सब-टेन्सर में बदलकर मैप किया जा सकता है. इस मामले में, अगर दूसरे ऐक्सिस के लिए 10 लेबल दिए जाते हैं, तो TensorLabel मूल {1, 10} Tensor को 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();
 

ध्यान दें: फ़िलहाल, हम सिर्फ़ ऐसे पहले लेबल के लिए टेंसर-टू-मैप कन्वर्ज़न की सुविधा देते हैं जिसका साइज़ एक से ज़्यादा है.

पब्लिक कंस्ट्रक्टर

TensorLabel(Maps<IntegerList<String>> ऐक्सिसLabels, TensorBuffer TensorBuffer)
यह ऐसा TensorLabel ऑब्जेक्ट बनाता है जो कई डाइमेंशन वाले टेंसर के ऐक्सिस पर लेबल कर सकता है.
TensorLabel(List<String> xiLabels, TensorBuffer tensorBuffer)
ऐसा TensorLabel ऑब्जेक्ट बनाता है जो कई डाइमेंशन वाले टेन्सर के एक ऐक्सिस पर लेबल कर सकता है.

सार्वजनिक तरीके

List<Category>
getCategoryList()
TensorLabel ऑब्जेक्ट से Category की सूची लेता है.
Map<StringFloat>
getMapWithFloatValue()
ऐसा मैप लेता है जिससे लेबल को फ़्लोट करने के लिए मैप किया जाता है.
Map<StringTensorBuffer>
getMapWithTensorBuffer()
लेबल के जोड़े और TensorBuffer के साथ मैप दिखाता है.

इनहेरिट किए गए तरीके

पब्लिक कंस्ट्रक्टर

सार्वजनिक TensorLabel (मैप<इंटीजरसूची<स्ट्रिंग>> ऐक्सिसलेबल, 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.

सार्वजनिक तरीके

सार्वजनिक सूची<Category> getCategoryList ()

TensorLabel ऑब्जेक्ट से Category की सूची लेता है.

लेबल का ऐक्सिस, असरदार तरीके से आखिरी ऐक्सिस होना चाहिए (इसका मतलब है कि इस ऐक्सिस से बताए गए हर सब टेंसर का साइज़ 1 होना चाहिए), ताकि लेबल किए गए हर सब टेंसर को फ़्लोट वैल्यू स्कोर में बदला जा सके. उदाहरण: {2, 5, 3} और ऐक्सिस 2 वाला TensorLabel मान्य होता है. अगर ऐक्सिस 1 या 0 है, तो इसे Category में नहीं बदला जा सकता.

getMapWithFloatValue() एक विकल्प है, लेकिन नतीजे के तौर पर Map दिखाता है.

थ्रो
IllegalStateException अगर हर लेबल पर सब टेंसर का साइज़ 1 नहीं है.

सार्वजनिक मैप<स्ट्रिंगफ़्लोट> getMapWithFloatValue ()

ऐसा मैप लेता है जिससे लेबल को फ़्लोट करने के लिए मैप किया जाता है. सिर्फ़ उस पहले ऐक्सिस पर मैपिंग की अनुमति दें जिसका साइज़ एक से ज़्यादा हो. साथ ही, ऐक्सिस सिर्फ़ आखिरी ऐक्सिस होना चाहिए (इसका मतलब है कि इस ऐक्सिस से जुड़े हर सब टेंसर का साइज़ 1 होना चाहिए).

नतीजा पाने के लिए, getCategoryList() एक वैकल्पिक एपीआई है.

थ्रो
IllegalStateException अगर हर लेबल पर सब टेंसर का साइज़ 1 नहीं है.

सार्वजनिक मैप<स्ट्रिंगTensorBuffer> getMapWithTensorBuffer ()

लेबल के जोड़े और TensorBuffer के साथ मैप दिखाता है. सिर्फ़ ऐसे पहले ऐक्सिस पर मैपिंग की अनुमति दें जिसका साइज़ एक से ज़्यादा हो.