TensorBuffer

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

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

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

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

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 के साथ, TensorBuffer की डीप-कॉपी करने वाला डेटा बनाता है.

पैरामीटर
बफ़र कॉपी करने के लिए सोर्स TensorBuffer.
dataType TensorBuffer में से DataType होने की उम्मीद है.
थ्रो
NullPointerException अगर buffer शून्य है.

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

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

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

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

Public int getFlatSize ()

बफ़र का फ़्लैटसाइज़ लेता है.

थ्रो
IllegalStateException अगर बुनियादी डेटा करप्ट है

सार्वजनिक ऐब्स्ट्रैक्ट फ़्लोट[] getFloatArray ()

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

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

किसी दिए गए इंडेक्स पर फ़्लोट वैल्यू दिखाता है. अगर बफ़र और फ़्लोट टाइप अलग-अलग हैं, तो वैल्यू को फ़्लोट में बदल दिया जाएगा. उदाहरण के लिए, TensorBufferUint8 से कोई वैल्यू पढ़ते समय, वैल्यू को सबसे पहले 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 पढ़ी जाने वाली वैल्यू का ऐब्सलूट इंडेक्स.

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

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

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

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

 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 पढ़ी जाने वाली वैल्यू का ऐब्सलूट इंडेक्स.

Public int[] getShape ()

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

थ्रो
IllegalStateException अगर बुनियादी डेटा करप्ट है

सार्वजनिक ऐब्स्ट्रैक्ट int getTypeSize ()

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

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

यह तब दिखता है, जब TensorBuffer का साइज़ डाइनैमिक हो (अपने हिसाब से साइज़ बदला जा सकता है).

Public ऐब्स्ट्रैक्ट शून्य loadArray (int[] src, int[] shape)

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

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

सार्वजनिक ऐब्स्ट्रैक्ट शून्य loadArray (फ़्लोट[] src, int[] शेप)

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

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

Public void loadArray (float[] src)

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

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

पैरामीटर
src लोड की जाने वाली सोर्स कलेक्शन.

Public void loadArray (int[] src)

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

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

पैरामीटर
src लोड की जाने वाली सोर्स कलेक्शन.

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

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

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

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

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

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

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

Public void loadBuffer (ByteBuffer बफ़र, int[] shape)

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

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

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

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