TensorBuffer

पब्लिक ऐब्स्ट्रैक्ट क्लास TensorBuffer
जाने-पहचाने डायरेक्ट सब-क्लास

यह किसी मॉडल के इनपुट या उसके आउटपुट के लिए, डेटा बफ़र को दिखाता है.

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

स्टैटिक TensorBuffer
createDynamic(DataType dataType)
बताए गए DataType के साथ एक खाली डाइनैमिक TensorBuffer बनाता है.
स्टैटिक TensorBuffer
createFixedSize(int[] आकार, DataType dataType)
बताए गए shape और DataType के साथ TensorBuffer बनाता है.
स्टैटिक TensorBuffer
createFrom(TensorBuffer बफ़र, DataType dataType)
यह विकल्प DataType के साथ किसी दूसरे डेटा को कॉपी करके, TensorBuffer को डीप-कॉपी करता है.
ByteBuffer
getBuffer()
डेटा बफ़र दिखाता है.
ऐब्सट्रैक्ट DataType
getDataType()
इस बफ़र का डेटा टाइप दिखाता है.
int
getFlatSize()
बफ़र का चपटा साइज़ फ़ेच करता है.
ऐब्सट्रैक्ट float[]
getFloatArray()
इस बफ़र में सेव की गई वैल्यू का फ़्लोट अरे दिखाता है.
ऐब्सट्रैक्ट फ़्लोट
getFloatValue(int absIndex)
दिए गए इंडेक्स में फ़्लोट वैल्यू दिखाता है.
ऐब्सट्रैक्ट पूर्णांक[]
getIntArray()
इस बफ़र में सेव की गई वैल्यू का पूर्णांक दिखाता है.
ऐब्सट्रैक्ट आईएनटी
getIntValue(int absIndex)
किसी दिए गए इंडेक्स में इंटेजर वैल्यू दिखाता है.
पूर्णांक[]
getShape()
मौजूदा आकार देता है.
ऐब्सट्रैक्ट आईएनटी
getTypeSize()
अरे में मौजूद एक एलिमेंट के बाइट की संख्या दिखाता है.
बूलियन
isDynamic()
यह फ़ंक्शन तब दिखाता है, जब TensorBuffer डाइनैमिक साइज़ का हो (इसमें मनचाहे तरीके से साइज़ बदला जा सकता है).
ऐब्सट्रैक्ट अमान्य
loadArray(int[] src, int[] shape)
खास आकार वाले इस बफ़र में एक पूर्णांक को लोड करता है.
ऐब्सट्रैक्ट अमान्य
loadArray(float[] src, int[] आकार)
इस बफ़र में, एक खास आकार वाले फ़्लोट अरे को लोड करता है.
अमान्य
loadArray(float[] src)
इस बफ़र में एक फ़्लोट अरे लोड करता है.
अमान्य
loadArray(int[] src)
इस बफ़र में इंटेजर को लोड करता है.
अमान्य
loadBuffer(ByteBuffer बफ़र)
इस TensorBuffer में एक बाइट बफ़र लोड करता है.
अमान्य
loadBuffer(ByteBuffer बफ़र, int[] आकार)
इस TensorBuffer में खास आकार वाले बाइट बफ़र को लोड करता है.

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

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

सार्वजनिक स्टैटिक TensorBuffer createDynamic (DataType डेटा टाइप)

बताए गए DataType के साथ एक खाली डाइनैमिक TensorBuffer बनाता है. इसका मतलब है बनाई गई TensorBuffer, {0} है.

डाइनैमिक TensorBuffers, अरे या इसके डेटा बफ़र को लोड करते समय मेमोरी का फिर से इस्तेमाल करेंगे अलग-अलग साइज़ का बफ़र होना चाहिए. यहां कुछ उदाहरण दिए गए हैं:

 // Creating a float dynamic TensorBuffer:
 TensorBuffer tensorBuffer = TensorBuffer.createDynamic(DataType.FLOAT32);
 // Loading a float array:
 float[] arr1 = new float[] {1, 2, 3};
 tensorBuffer.loadArray(arr, new int[] {arr1.length});
 // loading another float array:
 float[] arr2 = new float[] {1, 2, 3, 4, 5};
 tensorBuffer.loadArray(arr, new int[] {arr2.length});
 // loading a third float array with the same size as arr2, assuming shape doesn't change:
 float[] arr3 = new float[] {5, 4, 3, 2, 1};
 tensorBuffer.loadArray(arr);
 // loading a forth float array with different size as arr3 and omitting the shape will result
 // in error:
 float[] arr4 = new float[] {3, 2, 1};
 tensorBuffer.loadArray(arr); // Error: The size of byte buffer and the shape do not match.
 

पैरामीटर
dataType बनाया जाने वाला TensorBuffer का dataType.

सार्वजनिक स्टैटिक TensorBuffer createFixedSize (int[] आकार, DataType डेटाType)

बताए गए shape और DataType के साथ TensorBuffer बनाता है. यहां कुछ उदाहरण:

 // Creating a float TensorBuffer with shape {2, 3}:
 int[] shape = new int[] {2, 3};
 TensorBuffer tensorBuffer = TensorBuffer.createFixedSize(shape, DataType.FLOAT32);
 
 // Creating an uint8 TensorBuffer of a scalar:
 int[] shape = new int[] {};
 TensorBuffer tensorBuffer = TensorBuffer.createFixedSize(shape, DataType.UINT8);
 
 // Creating an empty uint8 TensorBuffer:
 int[] shape = new int[] {0};
 TensorBuffer tensorBuffer = TensorBuffer.createFixedSize(shape, DataType.UINT8);
 

तय साइज़ वाला TensorBuffer बनाने के बाद, उसका साइज़ नहीं बदला जा सकता.

पैरामीटर
आकार बनाए जाने वाले TensorBuffer का आकार.
dataType बनाया जाने वाला TensorBuffer का dataType.
थ्रो
NullPointerException अगर shape खाली है.
IllegalArgumentException अगर shape में ऐसे एलिमेंट हैं जो पॉज़िटिव नहीं हैं.

सार्वजनिक स्टैटिक TensorBuffer createFrom (TensorBuffer बफ़र, DataType dataType)

यह विकल्प DataType के साथ किसी दूसरे डेटा को कॉपी करके, TensorBuffer को डीप-कॉपी करता है.

पैरामीटर
बफ़र कॉपी करने के लिए, सोर्स TensorBuffer.
dataType नए बनाए गए TensorBuffer में से DataType होना चाहिए.
थ्रो
NullPointerException अगर buffer खाली है.

सार्वजनिक ByteBuffer getBuffer ()

डेटा बफ़र दिखाता है.

सार्वजनिक ऐब्सट्रैक्ट DataType getDataType ()

इस बफ़र का डेटा टाइप दिखाता है.

सार्वजनिक आईएनटी getFlatSize ()

बफ़र का चपटा साइज़ फ़ेच करता है.

थ्रो
IllegalStateException अगर दिए गए डेटा में कोई गड़बड़ी है

सार्वजनिक ऐब्सट्रैक्ट float[] getFloatArray ()

इस बफ़र में सेव की गई वैल्यू का फ़्लोट अरे दिखाता है. अगर बफ़र अलग-अलग तरह का है फ़्लोट के मुकाबले वैल्यू, फ़्लोट में बदल जाएंगी. उदाहरण के लिए, TensorBufferUint8 में मौजूद वैल्यू को uint8 से फ़्लोट में बदल दिया जाएगा.

सार्वजनिक ऐब्सट्रैक्ट फ़्लोट getFloatValue (int absIndex)

दिए गए इंडेक्स में फ़्लोट वैल्यू दिखाता है. अगर बफ़र, फ़्लोट से अलग तरह का है, तो वैल्यू को फ़्लोट में बदल दिया जाएगा. उदाहरण के लिए, TensorBufferUint8 से कोई वैल्यू पढ़ते समय, उस वैल्यू को पहले uint8 के तौर पर पढ़ा जाएगा. इसके बाद, उसे uint8 के तौर पर बदला जाएगा फ़्लोट के लिए uint8.

 For example, a TensorBuffer with shape {2, 3} that represents the following array,
 [[0.0f, 1.0f, 2.0f], [3.0f, 4.0f, 5.0f]].

 The fourth element (whose value is 3.0f) in the TensorBuffer can be retrieved by:
 float v = tensorBuffer.getFloatValue(3);
 

पैरामीटर
absIndex पढ़ी जाने वाली वैल्यू का ऐब्सलूट इंडेक्स.

सार्वजनिक ऐब्सट्रैक्ट पूर्णांक[] getIntArray ()

इस बफ़र में सेव की गई वैल्यू का पूर्णांक दिखाता है. अगर बफ़र अलग तरह का है पूर्णांक की तुलना में वैल्यू को पूर्णांक में बदल दिया जाएगा और सटीक जानकारी का नुकसान लागू हो सकता है. उदाहरण के लिए, TensorBufferFloat से, {400.32f, 23.04f} वैल्यू वाले पूर्णांक अरे को पाने के लिए आउटपुट है {400, 23}.

सार्वजनिक ऐब्सट्रैक्ट आईएनटी getIntValue (int absIndex)

किसी दिए गए इंडेक्स में इंटेजर वैल्यू दिखाता है. अगर बफ़र, int से अलग तरह का है, तो मान को int में बदल दिया जाएगा. उदाहरण के लिए, TensorBufferFloat से कोई वैल्यू पढ़ते समय, वैल्यू को पहले फ़्लोट के रूप में पढ़ा जाएगा और फिर उसे फ़्लोट से पूर्णांक में बदल दिया जाएगा. नुकसान लागू हो सकती है.

 For example, a TensorBuffer with shape {2, 3} that represents the following array,
 [[0.0f, 1.0f, 2.0f], [3.0f, 4.0f, 5.0f]].

 The fourth element (whose value is 3.0f) in the TensorBuffer can be retrieved by:
 int v = tensorBuffer.getIntValue(3);
 Note that v is converted from 3.0f to 3 as a result of type conversion.
 

पैरामीटर
absIndex पढ़ी जाने वाली वैल्यू का ऐब्सलूट इंडेक्स.

सार्वजनिक पूर्णांक[] getShape ()

मौजूदा आकार देता है. (अचानक होने वाले बदलाव से बचने के लिए, यहां एक कॉपी दी जा रही है.)

थ्रो
IllegalStateException अगर दिए गए डेटा में कोई गड़बड़ी है

सार्वजनिक ऐब्सट्रैक्ट आईएनटी getTypeSize ()

अरे में मौजूद एक एलिमेंट के बाइट की संख्या दिखाता है. उदाहरण के लिए, एक फ़्लोट बफ़र मान 4 है और बाइट बफ़र डालने पर 1 दिखेगा.

सार्वजनिक बूलियन isDynamic ()

यह फ़ंक्शन तब दिखाता है, जब TensorBuffer डाइनैमिक साइज़ का हो (इसमें मनचाहे तरीके से साइज़ बदला जा सकता है).

सार्वजनिक ऐब्सट्रैक्ट अमान्य loadArray (int[] src, int[] shape)

खास आकार वाले इस बफ़र में एक पूर्णांक को लोड करता है. अगर बफ़र अलग-अलग तरह का है पूर्णांक की तुलना में, मानों को बफ़र और सटीक होने की कमी का असर पड़ सकता है. उदाहरण के लिए, {400} वैल्यू वाली पूर्णांक अरे लोड करना, -23} को TensorBufferUint8 में, वैल्यू को [0, 255] से जोड़ा जाएगा. इसके बाद, {255, 0} से uint8 पर कास्ट किया गया.

पैरामीटर
स्रोत लोड किया जाने वाला सोर्स अरे.
आकार उस टेंसर का आकार जिसे src दिखाता है.
थ्रो
NullPointerException अगर src खाली है.
NullPointerException अगर shape खाली है.
IllegalArgumentException अगर लोड की जाने वाली अरे का साइज़, दिया गया आकार.

सार्वजनिक ऐब्सट्रैक्ट अमान्य loadArray (float[] src, int[] का आकार)

इस बफ़र में, एक खास आकार वाले फ़्लोट अरे को लोड करता है. अगर बफ़र अलग-अलग तरह का है फ़्लोट से कम है, तो मानों को बफ़र और सटीक होने की कमी का असर पड़ सकता है. उदाहरण के लिए, किसी फ़्लोट अरे को {400.32f, -23.04f} वैल्यू वाले TensorBufferUint8 में लोड करने पर, उसे [0, 255] पर सेट किया जाएगा और फिर {255, 0} तक uint8 पर कास्ट किया जाएगा.

पैरामीटर
स्रोत लोड किया जाने वाला सोर्स अरे.
आकार उस टेंसर का आकार जिसे src दिखाता है.
थ्रो
NullPointerException अगर src खाली है.
NullPointerException अगर shape खाली है.
IllegalArgumentException अगर लोड की जाने वाली अरे का साइज़, दिया गया आकार.

सार्वजनिक अमान्य loadArray (फ़्लोट[] src)

इस बफ़र में एक फ़्लोट अरे लोड करता है. अगर बफ़र, फ़्लोट से अलग तरह का है, तो मान को बफ़र में लोड किए जाने से पहले, बफ़र के टाइप में बदल दिया जाएगा. साथ ही, ये मान मिट जाएंगे लागू हो सकती है. उदाहरण के लिए, किसी फ़्लोट अरे को TensorBufferUint8 में लोड करना {400.32f, -23.04f} की वैल्यू के साथ, ये वैल्यू [0, 255] से जोड़ी जाएंगी और फिर इस पर कास्ट की जाएंगी uint8 by {255, 0}.

इस तरीके का इस्तेमाल करने पर यह माना जाता है कि src का आकार, इसके आकार के जैसा ही है TensorBuffer. इसलिए, buffer (src.length) का साइज़ हमेशा मेल खाना चाहिए इस TensorBuffer का फ़्लैट साइज़, फ़िक्स्ड साइज़ और डाइनैमिक TensorBuffer, दोनों के लिए है. अगर src का आकार अलग है, तो loadArray(float[], int[]) का इस्तेमाल करें.

पैरामीटर
स्रोत लोड किया जाने वाला सोर्स अरे.

सार्वजनिक अमान्य loadArray (int[] src)

इस बफ़र में इंटेजर को लोड करता है. अगर बफ़र, int से अलग तरह का है, तो वैल्यू को बफ़र में लोड किए जाने से पहले बफ़र के टाइप में बदल दिया जाएगा. साथ ही, सटीक जानकारी लागू हो सकती है. उदाहरण के लिए, किसी TensorBufferUint8 में {400, -23} वैल्यू वाले किसी पूर्णांक को लोड करने पर, वैल्यू को [0, 255] पर सेट किया जाएगा. इसके बाद, uint8 पर कास्ट किया जाएगा {255, 0}.

इस तरीके का इस्तेमाल करने पर यह माना जाता है कि src का आकार, इसके आकार के जैसा ही है TensorBuffer. इसलिए, buffer (src.length) का साइज़ हमेशा मेल खाना चाहिए इस TensorBuffer का फ़्लैट साइज़, फ़िक्स्ड साइज़ और डाइनैमिक TensorBuffer, दोनों के लिए है. अगर src का आकार अलग है, तो loadArray(int[], int[]) का इस्तेमाल करें.

पैरामीटर
स्रोत लोड किया जाने वाला सोर्स अरे.

सार्वजनिक अमान्य loadBuffer (ByteBuffer बफ़र)

इस TensorBuffer में एक बाइट बफ़र लोड करता है. बफ़र का साइज़, इसके फ़्लैट साइज़ से मेल खाना चाहिए यह TensorBuffer.

इस तरीके का इस्तेमाल करने पर यह माना जाता है कि buffer का आकार, इसके आकार के जैसा ही है TensorBuffer. इसलिए, buffer (buffer.limit()) का साइज़ हमेशा यह होना चाहिए तय साइज़ और डाइनैमिक TensorBuffer, दोनों के लिए, इस TensorBuffer के फ़्लैट साइज़ से मैच करें. अगर buffer में कोई दूसरी वैल्यू है, तो loadBuffer(ByteBuffer, int[]) का इस्तेमाल करें आकार.

अहम जानकारी: लोड किया गया बफ़र एक रेफ़रंस होता है. बदलाव न करें. हम यहां कॉपी नहीं बनाते लेकिन यदि संशोधन आवश्यक है, तो कृपया एक कॉपी बनाएं.

सबसे अच्छी परफ़ॉर्मेंस के लिए, हमेशा डायरेक्ट ByteBuffer या ByteBuffer लोड करें का इस्तेमाल एक कलेक्शन में किया जा सकता है.

अगर buffer रीड-ओनली मोड में है, तो हम परफ़ॉर्मेंस के लिए, कॉपी-ऑन-राइट रणनीति का इस्तेमाल करते हैं.

पैरामीटर
बफ़र लोड होने वाला बाइट बफ़र.

सार्वजनिक अमान्य loadBuffer (ByteBuffer बफ़र, int[] आकार)

इस TensorBuffer में खास आकार वाले बाइट बफ़र को लोड करता है.

अहम जानकारी: लोड किया गया बफ़र एक रेफ़रंस होता है. बदलाव न करें. हम यहां कॉपी नहीं बनाते लेकिन यदि संशोधन आवश्यक है, तो कृपया एक कॉपी बनाएं.

सबसे अच्छी परफ़ॉर्मेंस के लिए, हमेशा डायरेक्ट ByteBuffer या ByteBuffer लोड करें का इस्तेमाल एक कलेक्शन में किया जा सकता है.

पैरामीटर
बफ़र लोड होने वाला बाइट बफ़र.
आकार
थ्रो
NullPointerException अगर buffer खाली है.
IllegalArgumentException अगर buffer और typeSize का साइज़ मिलान या buffer और flatSize का आकार मेल नहीं खाता.