TensorBuffer

فئة التجريد العامة TensorBuffer
الفئات الفرعية المباشرة المعروفة

تمثل المخزن المؤقت للبيانات لإدخال النموذج أو مخرجاته.

الطرق العامة

ثابت TensorBuffer
createDynamic(DataType dataType)
تنشئ دالة TensorBuffer ديناميكية فارغة مع تحديد DataType.
ثابت TensorBuffer
createFixedSize(شكل int[]، نوع البيانات DataType)
لإنشاء TensorBuffer مع shape وDataType محدّدَين.
ثابت TensorBuffer
createFrom(المخزن المؤقت TensorBuffer، ونوع البيانات DataType)
تنشئ هذه الدالة TensorBuffer نسخًا لصفحات في التطبيق من مصدر آخر، مع تحديد DataType.
ByteBuffer
getBuffer()
تعرض المخزن المؤقت للبيانات.
تجريدي DataType
getDataType()
تعرض نوع بيانات هذا المورد الاحتياطي.
int
getFlatSize()
الحصول على الحجم المسطح للمخزن المؤقت.
تجريدي عدد عائم[]
getFloatArray()
تعرض صفيفًا عائمًا للقيم المخزّنة في هذا المخزن المؤقت.
تجريدي عائم
getFloatValue(int absIndex)
لعرض قيمة عائمة في فهرس معيّن.
تجريدي عدد صحيح[]
getIntArray()
تعرض صفيفة عدد صحيح من القيم المخزّنة في هذا المخزن المؤقت.
تجريدي عدد صحيح
getIntValue(int absIndex)
لعرض قيمة عدد صحيح في فهرس معيّن.
int[]
getShape()
الحصول على الشكل الحالي.
تجريدي عدد صحيح
getTypeSize()
لعرض عدد وحدات البايت لعنصر واحد في الصفيف.
boolean
isDynamic()
تعرِض هذه السمة إذا كان حجم TensorBuffer ديناميكيًا (يمكن تغيير الحجم بشكل عشوائي).
تجريدي باطل
loadArray(int[] src, int[] shape)
لتحميل صفيفة عدد صحيح في هذا المخزن المؤقت بشكل محدد.
تجريدي باطل
loadArray(float[] src, int[] shape)
لتحميل صفيف عائم في هذا المخزن المؤقت بشكل محدد.
void
loadArray(float[] src)
تقوم بتحميل صفيفة عائمة في هذا المخزن المؤقت.
void
loadArray(int[] src)
تقوم بتحميل صفيفة عدد صحيح في هذا المخزن المؤقت.
void
loadBuffer(المخزن المؤقت ByteBuffer)
لتحميل مخزن بايت مؤقتًا في TensorBuffer هذا.
void
loadBuffer(التخزين المؤقت ByteBuffer، الشكل int[])
لتحميل المخزن المؤقت بالبايت في TensorBuffer هذا بشكل محدد.

الطرق المكتسَبة

الطرق العامة

public static TensorBuffer createDynamic (DataType dataType)

تنشئ دالة TensorBuffer ديناميكية فارغة مع تحديد DataType. شكل 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 المطلوب إنشاؤها.

public static TensorBuffer createFixedSize (int[] shape, DataType dataType)

لإنشاء TensorBuffer مع shape وDataType محدّدَين. إليك بعض الأمثلة:

 // 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 ذي الحجم الثابت بعد إنشائه.

المَعلمات
shape شكل TensorBuffer المطلوب إنشاؤها.
dataType نوع البيانات للسمة TensorBuffer المطلوب إنشاؤها.
الرميات
NullPointerException إذا كانت القيمة shape فارغة.
IllegalArgumentException إذا كان shape يحتوي على عناصر غير موجبة.

public static TensorBuffer createFrom (TensorBuffer buffer, DataType dataType)

تنشئ هذه الدالة TensorBuffer نسخًا لصفحات في التطبيق من مصدر آخر، مع تحديد DataType.

المَعلمات
المخزن المؤقت المصدر TensorBuffer للنسخ منه.
dataType القيمة المتوقّعة للسمة DataType للسمة TensorBuffer التي تم إنشاؤها حديثًا.
الرميات
NullPointerException إذا كانت القيمة buffer فارغة.

public ByteBuffer getBuffer ()

تعرض المخزن المؤقت للبيانات.

متاح للجميع ملخّص DataType getDataType ()

تعرض نوع بيانات هذا المورد الاحتياطي.

public int getFlatSize ()

الحصول على الحجم المسطح للمخزن المؤقت.

الرميات
IllegalStateException إذا كانت البيانات الأساسية تالفة

متاح للجميع رسم تجريدي float[] 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 الفهرس المطلق للقيمة المطلوب قراءتها.

عام تجريدي عدد صحيح[] getIntArray ()

تعرض صفيفة عدد صحيح من القيم المخزّنة في هذا المخزن المؤقت. إذا كان نوع المورد الاحتياطي من نوع غير عدد صحيح، سيتم تحويل القيم إلى عدد صحيح، وقد يحدث فقدان الدقة. على سبيل المثال، عند الحصول على صفيف صحيح من TensorBufferFloat بقيمة {400.32f, 23.04f}، يكون الناتج {400, 23}.

عام مجرد getIntValue

لعرض قيمة عدد صحيح في فهرس معيّن. إذا كان المخزن المؤقت أنواعًا مختلفة عن العدد الصحيح، سيتم تحويل القيمة إلى عدد صحيح. على سبيل المثال، عند قراءة قيمة من 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 الفهرس المطلق للقيمة المطلوب قراءتها.

public int[] getShape ()

الحصول على الشكل الحالي. (عرض نسخة هنا لتجنب التعديل غير المتوقع.)

الرميات
IllegalStateException إذا كانت البيانات الأساسية تالفة

public تجريدي int getTypeSize ()

لعرض عدد وحدات البايت لعنصر واحد في الصفيف. على سبيل المثال، سيعرض المخزن المؤقت العائم الرقم 4، ويعرض المخزن المؤقت بالبايت الرقم 1.

public منطقي isDynamic ()

تعرِض هذه السمة إذا كان حجم TensorBuffer ديناميكيًا (يمكن تغيير الحجم بشكل عشوائي).

متاح للجميع رسم تجريدي فارغ loadArray (int[] src، int[] shape)

لتحميل صفيفة عدد صحيح في هذا المخزن المؤقت بشكل محدد. إذا كان المخزن المؤقت من أنواع مختلفة عن عدد صحيح، سيتم تحويل القيم إلى نوع المخزن المؤقت قبل تحميلها إلى المخزن المؤقت، وقد يحدث فقدان الدقة. على سبيل المثال، عند تحميل مصفوفة عدد صحيح تتضمّن القيم {400, -23} في TensorBufferUint8، سيتم تثبيت القيم على [0، 255] ثم يتم تحويلها إلى uint8 في {255, 0}.

المَعلمات
src صفيف المصدر المراد تحميله
shape شكل الموتّر الذي يمثله src.
الرميات
NullPointerException إذا كانت القيمة src فارغة.
NullPointerException إذا كانت القيمة shape فارغة.
IllegalArgumentException إذا كان حجم الصفيف المراد تحميله لا يتطابق مع الشكل المحدد.

متاح للجميع رسم تجريدي فارغ loadArray (float[] src, int[] shape)

لتحميل صفيف عائم في هذا المخزن المؤقت بشكل محدد. إذا كان المخزن المؤقت من أنواع مختلفة عن القيم العائمة، فسيتم تحويل القيم إلى نوع المخزن المؤقت قبل تحميلها إلى المخزن المؤقت، وقد يحدث فقدان الدقة. على سبيل المثال، عند تحميل مصفوفة عائمة في TensorBufferUint8 بالقيم {400.32f, -23.04f}، سيتم تثبيت القيم إلى [0، 255] ثم يتم تحويلها إلى uint8 بواسطة {255, 0}.

المَعلمات
src صفيف المصدر المراد تحميله
shape شكل الموتّر الذي يمثله src.
الرميات
NullPointerException إذا كانت القيمة src فارغة.
NullPointerException إذا كانت القيمة shape فارغة.
IllegalArgumentException إذا كان حجم الصفيف المراد تحميله لا يتطابق مع الشكل المحدد.

متاح للجميع إلغاء loadArray (float[] src)

تقوم بتحميل صفيفة عائمة في هذا المخزن المؤقت. إذا كان المخزن المؤقت من أنواع مختلفة عن القيم العائمة، فسيتم تحويل القيم إلى نوع المخزن المؤقت قبل تحميلها إلى المخزن المؤقت، وقد ينتج عن ذلك فقدان الدقة. على سبيل المثال، عند تحميل مصفوفة عائمة في TensorBufferUint8 بالقيم {400.32f, -23.04f}، سيتم تثبيت القيم على [0, 255] ثم يتم تحويلها إلى uint8 في {255, 0}.

يفترض استخدام هذه الطريقة أنّ شكل src هو نفسه شكل TensorBuffer. وبالتالي، يجب أن يتطابق حجم buffer (src.length) دائمًا مع الحجم المسطّح لـ TensorBuffer هذا، وذلك لكل من TensorBuffer الحجم الثابت والديناميكي. استخدِم loadArray(float[], int[]) إذا كان src له شكل مختلف.

المَعلمات
src صفيف المصدر المراد تحميله

متاح للجميع إلغاء loadArray (int[] src)

تقوم بتحميل صفيفة عدد صحيح في هذا المخزن المؤقت. إذا كان المخزن المؤقت من أنواع مختلفة عن عدد صحيح، سيتم تحويل القيم إلى نوع المخزن المؤقت قبل تحميلها إلى المخزن المؤقت، وقد يحدث فقدان الدقة. على سبيل المثال، عند تحميل صفيف صحيح يتضمن القيم {400, -23} في TensorBufferUint8، سيتم تثبيت القيم على [0, 255] ثم يتم تحويلها إلى uint8 بواسطة {255, 0}.

يفترض استخدام هذه الطريقة أنّ شكل src هو نفسه شكل TensorBuffer. وبالتالي، يجب أن يتطابق حجم buffer (src.length) دائمًا مع الحجم المسطّح لـ TensorBuffer هذا، وذلك لكل من TensorBuffer الحجم الثابت والديناميكي. استخدِم loadArray(int[], int[]) إذا كان src له شكل مختلف.

المَعلمات
src صفيف المصدر المراد تحميله

متاح للجميع إبطال loadBuffer (ByteBuffer buffer)

لتحميل مخزن بايت مؤقتًا في TensorBuffer هذا. يجب أن يتطابق حجم المخزن المؤقت مع الحجم الثابت للسمة TensorBuffer.

يفترض استخدام هذه الطريقة أنّ شكل buffer هو نفسه شكل TensorBuffer. وبالتالي، يجب أن يتطابق حجم buffer (buffer.limit()) دائمًا مع الحجم المسطّح لـ TensorBuffer هذا، وذلك لكل من TensorBuffer الحجم الثابت والديناميكي. استخدِم السمة loadBuffer(ByteBuffer, int[]) إذا كان للسمة buffer شكل مختلف.

ملاحظة مهمة: يُعد المخزن المؤقت المحمَّل مرجعًا. يُرجى عدم التعديل. لا ننشئ نسخة هنا للمخاوف المتعلّقة بالأداء، ولكن إذا كان التعديل ضروريًا، يُرجى إنشاء نسخة.

للحصول على أفضل أداء، عليك دائمًا تحميل ByteBuffer أو ByteBuffer مباشرين مع مصفوفة.

إذا كانت السمة buffer للقراءة فقط، سنستخدم استراتيجية النسخ عند الكتابة للأداء.

المَعلمات
المخزن المؤقت المخزن المؤقت بالبايت المراد تحميله.

public إبطال loadBuffer (ByteBuffer buffer, int[] shape)

لتحميل المخزن المؤقت بالبايت في TensorBuffer هذا بشكل محدد.

ملاحظة مهمة: يُعد المخزن المؤقت المحمَّل مرجعًا. يُرجى عدم التعديل. لا ننشئ نسخة هنا للمخاوف المتعلّقة بالأداء، ولكن إذا كان التعديل ضروريًا، يُرجى إنشاء نسخة.

للحصول على أفضل أداء، عليك دائمًا تحميل ByteBuffer أو ByteBuffer مباشرين مع مصفوفة.

المَعلمات
المخزن المؤقت المخزن المؤقت بالبايت المراد تحميله.
shape
الرميات
NullPointerException إذا كانت القيمة buffer فارغة.
IllegalArgumentException إذا كان حجم buffer وtypeSize غير متطابقَين أو إذا كان حجما buffer وflatSize غير متطابقَين