الفئات الفرعية المباشرة المعروفة |
تمثل المخزن المؤقت للبيانات لإدخال النموذج أو مخرجاته.
الطرق العامة
ثابت TensorBuffer | |
ثابت TensorBuffer | |
ثابت 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 | |
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 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 غير متطابقَين
|