TensorBuffer

পাবলিক বিমূর্ত ক্লাস TensorBuffer
পরিচিত ডাইরেক্ট সাবক্লাস

একটি মডেলের ইনপুট বা এর আউটপুটের জন্য ডেটা বাফার প্রতিনিধিত্ব করে।

পাবলিক পদ্ধতি

স্ট্যাটিক টেনসরবাফার
তৈরি করুন ডাইনামিক ( ডেটা টাইপ ডেটা টাইপ)
নির্দিষ্ট DataType সহ একটি খালি গতিশীল TensorBuffer তৈরি করে।
স্ট্যাটিক টেনসরবাফার
CreateFixedSize (int[] আকৃতি, DataType dataType)
নির্দিষ্ট shape এবং DataType সহ একটি TensorBuffer তৈরি করে।
স্ট্যাটিক টেনসরবাফার
createFrom ( TensorBuffer বাফার, DataType dataType)
নির্দিষ্ট DataType সহ অন্য থেকে একটি TensorBuffer ডিপ-কপি করা ডেটা তৈরি করে।
বাইটবাফার
getBuffer ()
ডেটা বাফার প্রদান করে।
বিমূর্ত ডেটা টাইপ
getDataType ()
এই বাফারের ডেটা টাইপ প্রদান করে।
int
ফ্ল্যাট সাইজ ()
বাফারের সমতল আকার পায়।
বিমূর্ত ভাসা[]
getFloatArray ()
এই বাফারে সংরক্ষিত মানগুলির একটি ফ্লোট অ্যারে প্রদান করে।
বিমূর্ত ভাসা
getFloatValue (int absIndex)
একটি প্রদত্ত সূচকে একটি ফ্লোট মান প্রদান করে।
বিমূর্ত int[]
getIntArray ()
এই বাফারে সংরক্ষিত মানগুলির একটি int অ্যারে প্রদান করে।
বিমূর্ত int
getIntValue (int absIndex)
একটি প্রদত্ত সূচকে একটি int মান প্রদান করে।
int[]
গেটশেপ ()
বর্তমান আকৃতি পায়।
বিমূর্ত int
getTypeSize ()
অ্যারেতে একটি একক উপাদানের বাইটের সংখ্যা প্রদান করে।
বুলিয়ান
গতিশীল ()
TensorBuffer ডাইনামিক আকারের হলে রিটার্ন করে (যথেচ্ছভাবে আকার পরিবর্তন করতে পারে)।
বিমূর্ত শূন্যতা
লোডঅ্যারে (int[] src, int[] আকৃতি)
নির্দিষ্ট আকারের সাথে এই বাফারে একটি int অ্যারে লোড করে।
বিমূর্ত শূন্যতা
লোডঅ্যারে (ফ্লোট[] src, int[] আকৃতি)
নির্দিষ্ট আকৃতি সহ এই বাফারে একটি ফ্লোট অ্যারে লোড করে।
অকার্যকর
লোডঅ্যারে (ফ্লোট[] src)
এই বাফারে একটি ফ্লোট অ্যারে লোড করে।
অকার্যকর
লোডঅ্যারে (int[] src)
এই বাফার মধ্যে একটি int অ্যারে লোড.
অকার্যকর
লোডবাফার ( বাইটবাফার বাফার)
এই TensorBuffer একটি বাইট বাফার লোড করে।
অকার্যকর
লোডবাফার ( বাইটবাফার বাফার, int[] আকৃতি)
নির্দিষ্ট আকৃতি সহ এই TensorBuffer একটি বাইট বাফার লোড করে।

উত্তরাধিকারসূত্রে প্রাপ্ত পদ্ধতি

পাবলিক পদ্ধতি

পাবলিক স্ট্যাটিক TensorBuffer createDynamic ( DataType dataType)

নির্দিষ্ট DataType সহ একটি খালি গতিশীল TensorBuffer তৈরি করে। তৈরি করা TensorBuffer আকৃতি হল {0}।

বিভিন্ন বাফার আকারের অ্যারে বা ডেটা বাফার লোড করার সময় ডায়নামিক টেনসরবাফারগুলি মেমরি পুনরায় বরাদ্দ করবে। এখানে কিছু উদাহরণ রয়েছে:

 // 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.
 

পরামিতি
ডেটা টাইপ TensorBuffer ডেটা টাইপ তৈরি করা হবে।

পাবলিক স্ট্যাটিক TensorBuffer createFixedSize (int[] আকৃতি, 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 এর আকৃতি তৈরি করতে হবে।
ডেটা টাইপ TensorBuffer ডেটা টাইপ তৈরি করা হবে।
নিক্ষেপ করে
নাল পয়েন্টার ব্যতিক্রম যদি shape শূন্য হয়।
অবৈধ আর্গুমেন্ট ব্যতিক্রম যদি shape অ-ধনাত্মক উপাদান থাকে।

পাবলিক স্ট্যাটিক TensorBuffer createFrom ( TensorBuffer বাফার, DataType dataType)

নির্দিষ্ট DataType সহ অন্য থেকে একটি TensorBuffer ডিপ-কপি করা ডেটা তৈরি করে।

পরামিতি
বাফার উৎস TensorBuffer থেকে কপি করতে.
ডেটা টাইপ নতুন তৈরি TensorBuffer প্রত্যাশিত DataType
নিক্ষেপ করে
নাল পয়েন্টার ব্যতিক্রম যদি buffer শূন্য হয়।

পাবলিক বাইটবাফার getBuffer ()

ডেটা বাফার প্রদান করে।

সর্বজনীন বিমূর্ত ডেটা টাইপ getDataType ()

এই বাফারের ডেটা টাইপ প্রদান করে।

পাবলিক int getFlatSize ()

বাফারের সমতল আকার পায়।

নিক্ষেপ করে
অবৈধ রাজ্য ব্যতিক্রম যদি অন্তর্নিহিত ডেটা দূষিত হয়

পাবলিক বিমূর্ত ভাসা[] getFloatArray ()

এই বাফারে সংরক্ষিত মানগুলির একটি ফ্লোট অ্যারে প্রদান করে। যদি বাফারটি ফ্লোটের চেয়ে বিভিন্ন ধরণের হয় তবে মানগুলি ফ্লোটে রূপান্তরিত হবে। উদাহরণস্বরূপ, TensorBufferUint8 এর মানগুলি uint8 থেকে float-এ রূপান্তরিত হবে।

পাবলিক অ্যাবস্ট্রাক্ট ফ্লোট 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-এর চেয়ে ভিন্ন ধরনের হয়, তাহলে মানগুলি int-এ রূপান্তরিত হবে এবং নির্ভুলতা হ্রাস প্রযোজ্য হতে পারে। উদাহরণস্বরূপ, {400.32f, 23.04f} মান সহ একটি TensorBufferFloat থেকে একটি int অ্যারে পাওয়া, আউটপুট হল {400, 23}।

সর্বজনীন বিমূর্ত int getIntValue (int absIndex)

একটি প্রদত্ত সূচকে একটি int মান প্রদান করে। যদি বাফারটি int এর চেয়ে বিভিন্ন ধরণের হয় তবে মানটি int-এ রূপান্তরিত হবে। উদাহরণস্বরূপ, TensorBufferFloat থেকে একটি মান পড়ার সময়, মানটি প্রথমে float হিসাবে পড়া হবে এবং তারপর float থেকে 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 যে মানটি পড়তে হবে তার পরম সূচক।

পাবলিক int[] getShape ()

বর্তমান আকৃতি পায়। (অপ্রত্যাশিত পরিবর্তন এড়াতে এখানে একটি অনুলিপি ফেরত দেওয়া হচ্ছে।)

নিক্ষেপ করে
অবৈধ রাজ্য ব্যতিক্রম যদি অন্তর্নিহিত ডেটা দূষিত হয়

পাবলিক বিমূর্ত int getTypeSize ()

অ্যারেতে একটি একক উপাদানের বাইটের সংখ্যা প্রদান করে। উদাহরণস্বরূপ, একটি ফ্লোট বাফার 4 প্রদান করবে এবং একটি বাইট বাফার 1 প্রদান করবে।

পাবলিক বুলিয়ান ডাইনামিক ()

TensorBuffer ডাইনামিক আকারের হলে রিটার্ন করে (যথেচ্ছভাবে আকার পরিবর্তন করতে পারে)।

সর্বজনীন বিমূর্ত অকার্যকর লোডঅ্যারে (int[] src, int[] আকৃতি)

নির্দিষ্ট আকারের সাথে এই বাফারে একটি int অ্যারে লোড করে। যদি বাফারটি int-এর চেয়ে ভিন্ন ধরনের হয়, তাহলে মানগুলি বাফারে লোড হওয়ার আগে বাফারের প্রকারে রূপান্তরিত হবে এবং নির্ভুলতা হ্রাস প্রযোজ্য হতে পারে। উদাহরণস্বরূপ, একটি TensorBufferUint8 এ {400, -23} মান সহ একটি int অ্যারে লোড করা হলে, মানগুলিকে [0, 255] এ আটকানো হবে এবং তারপরে {255, 0} দ্বারা uint8 এ কাস্ট করা হবে।

পরামিতি
src উৎস অ্যারে লোড করা হবে.
আকৃতি টেনসরের আকৃতি যা src প্রতিনিধিত্ব করে।
নিক্ষেপ করে
নাল পয়েন্টার ব্যতিক্রম যদি src শূন্য হয়।
নাল পয়েন্টার ব্যতিক্রম যদি shape শূন্য হয়।
অবৈধ আর্গুমেন্ট ব্যতিক্রম যদি লোড করা অ্যারের আকার নির্দিষ্ট আকারের সাথে মেলে না।

সর্বজনীন বিমূর্ত অকার্যকর লোডঅ্যারে (ফ্লোট[] src, int[] আকৃতি)

নির্দিষ্ট আকৃতি সহ এই বাফারে একটি ফ্লোট অ্যারে লোড করে। যদি বাফারটি ফ্লোটের চেয়ে ভিন্ন ধরনের হয়, তবে মানগুলি বাফারে লোড হওয়ার আগে বাফারের প্রকারে রূপান্তরিত হবে এবং নির্ভুলতা হ্রাস প্রযোজ্য হতে পারে। উদাহরণস্বরূপ, {400.32f, -23.04f} মান সহ একটি TensorBufferUint8 এ একটি ফ্লোট অ্যারে লোড করা হলে, মানগুলিকে [0, 255]-এ আটকানো হবে এবং তারপরে {255, 0} দ্বারা uint8-এ কাস্ট করা হবে।

পরামিতি
src উৎস অ্যারে লোড করা হবে.
আকৃতি টেনসরের আকৃতি যা src প্রতিনিধিত্ব করে।
নিক্ষেপ করে
নাল পয়েন্টার ব্যতিক্রম যদি src শূন্য হয়।
নাল পয়েন্টার ব্যতিক্রম যদি shape শূন্য হয়।
অবৈধ আর্গুমেন্ট ব্যতিক্রম যদি লোড করা অ্যারের আকার নির্দিষ্ট আকারের সাথে মেলে না।

সর্বজনীন অকার্যকর লোডঅ্যারে (ফ্লোট[] src)

এই বাফারে একটি ফ্লোট অ্যারে লোড করে। যদি বাফারটি ফ্লোটের চেয়ে ভিন্ন ধরনের হয়, তবে মানগুলি বাফারে লোড হওয়ার আগে বাফারের প্রকারে রূপান্তরিত হবে এবং নির্ভুলতা হ্রাস প্রযোজ্য হতে পারে। উদাহরণস্বরূপ, {400.32f, -23.04f} মান সহ একটি TensorBufferUint8 এ একটি ফ্লোট অ্যারে লোড করা হলে, মানগুলিকে [0, 255]-এ আটকানো হবে এবং তারপরে {255, 0} দ্বারা uint8-এ কাস্ট করা হবে।

এই পদ্ধতি ব্যবহার করে অনুমান করা হয় যে src এর আকৃতি এই TensorBuffer এর আকৃতির মতই। এইভাবে buffer আকার ( src.length ) সবসময় এই TensorBuffer এর সমতল আকারের সাথে মিলিত হওয়া উচিত, স্থির-আকার এবং গতিশীল TensorBuffer উভয়ের জন্য। src আকৃতি ভিন্ন হলে loadArray(float[], int[]) ব্যবহার করুন।

পরামিতি
src উৎস অ্যারে লোড করা হবে.

সর্বজনীন অকার্যকর লোডঅ্যারে (int[] src)

এই বাফার মধ্যে একটি int অ্যারে লোড. যদি বাফারটি int-এর চেয়ে ভিন্ন ধরনের হয়, তাহলে মানগুলি বাফারে লোড হওয়ার আগে বাফারের প্রকারে রূপান্তরিত হবে এবং নির্ভুলতা হ্রাস প্রযোজ্য হতে পারে। উদাহরণস্বরূপ, একটি TensorBufferUint8 এ {400, -23} মান সহ একটি int অ্যারে লোড করা হলে, মানগুলিকে [0, 255] এ আটকানো হবে এবং তারপরে {255, 0} দ্বারা uint8 এ কাস্ট করা হবে।

এই পদ্ধতি ব্যবহার করে অনুমান করা হয় যে src এর আকৃতি এই TensorBuffer এর আকৃতির মতই। এইভাবে buffer আকার ( src.length ) সবসময় এই TensorBuffer এর সমতল আকারের সাথে মিলিত হওয়া উচিত, স্থির-আকার এবং গতিশীল TensorBuffer উভয়ের জন্য। src ভিন্ন আকৃতি থাকলে loadArray(int[], int[]) ব্যবহার করুন।

পরামিতি
src উৎস অ্যারে লোড করা হবে.

পাবলিক ভ্যায়েড লোডবাফার ( বাইটবাফার বাফার)

এই TensorBuffer একটি বাইট বাফার লোড করে। বাফারের আকার অবশ্যই এই TensorBuffer সমতল আকারের সাথে মেলে।

এই পদ্ধতি ব্যবহার করে অনুমান করা হয় যে buffer আকৃতি এই TensorBuffer এর আকৃতির মতই। এইভাবে buffer আকার ( buffer.limit() ) সবসময় এই TensorBuffer এর সমতল আকারের সাথে মিলিত হওয়া উচিত, স্থির-আকার এবং গতিশীল TensorBuffer উভয়ের জন্য। buffer ভিন্ন আকৃতি থাকলে loadBuffer(ByteBuffer, int[]) ব্যবহার করুন।

গুরুত্বপূর্ণ: লোড করা বাফার একটি রেফারেন্স। পরিবর্তন করবেন না। কর্মক্ষমতা উদ্বেগের জন্য আমরা এখানে একটি অনুলিপি তৈরি করি না, তবে যদি পরিবর্তনের প্রয়োজন হয় তবে অনুগ্রহ করে একটি অনুলিপি তৈরি করুন৷

সেরা পারফরম্যান্সের জন্য, সর্বদা একটি সরাসরি ByteBuffer বা অ্যারে দ্বারা সমর্থিত একটি ByteBuffer লোড করুন।

buffer শুধুমাত্র পঠনযোগ্য হলে, আমরা কর্মক্ষমতার জন্য একটি কপি-অন-রাইট কৌশল গ্রহণ করি।

পরামিতি
বাফার লোড করার জন্য বাইট বাফার।

সর্বজনীন অকার্যকর লোডবাফার ( বাইটবাফার বাফার, int[] আকৃতি)

নির্দিষ্ট আকৃতি সহ এই TensorBuffer একটি বাইট বাফার লোড করে।

গুরুত্বপূর্ণ: লোড করা বাফার একটি রেফারেন্স। পরিবর্তন করবেন না। কর্মক্ষমতা উদ্বেগের জন্য আমরা এখানে একটি অনুলিপি তৈরি করি না, তবে যদি পরিবর্তনের প্রয়োজন হয় তবে অনুগ্রহ করে একটি অনুলিপি তৈরি করুন৷

সেরা পারফরম্যান্সের জন্য, সর্বদা একটি সরাসরি ByteBuffer বা অ্যারে দ্বারা সমর্থিত একটি ByteBuffer লোড করুন।

পরামিতি
বাফার লোড করার জন্য বাইট বাফার।
আকৃতি
নিক্ষেপ করে
নাল পয়েন্টার ব্যতিক্রম যদি buffer শূন্য হয়।
অবৈধ আর্গুমেন্ট ব্যতিক্রম যদি buffer এবং typeSize আকার মেলে না বা buffer এবং flatSize আকার মেলে না।