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