जानी-पहचानी डायरेक्ट सब-क्लास |
यह मॉडल के इनपुट या आउटपुट के लिए डेटा बफ़र दिखाता है.
सार्वजनिक तरीके
स्टैटिक TensorBuffer | |
स्टैटिक 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 | |
void |
इनहेरिट किए गए तरीके
सार्वजनिक तरीके
सार्वजनिक स्टैटिक 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 शून्य है.
|
---|
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 के साइज़ मेल नहीं खाते हैं.
|