TensorBuffer

کلاس انتزاعی عمومی TensorBuffer
زیر کلاس های مستقیم شناخته شده

بافر داده را برای ورودی یا خروجی مدل نشان می دهد.

روش های عمومی

TensorBuffer استاتیک
createDynamic ( DataType dataType)
یک TensorBuffer پویا خالی با DataType مشخص شده ایجاد می کند.
TensorBuffer استاتیک
createFixedSize (int[] shape, DataType dataType)
یک TensorBuffer با shape و DataType مشخص ایجاد می کند.
TensorBuffer استاتیک
createFrom ( بافر TensorBuffer ، DataType dataType)
یک داده کپی عمیق TensorBuffer از دیگری با DataType مشخص شده ایجاد می کند.
بایت بافر
getBuffer ()
بافر داده را برمی گرداند.
نوع داده انتزاعی
getDataType ()
نوع داده این بافر را برمی گرداند.
بین المللی
getFlatSize ()
FlatSize بافر را دریافت می کند.
شناور انتزاعی[]
getFloatArray ()
یک آرایه شناور از مقادیر ذخیره شده در این بافر را برمی گرداند.
شناور انتزاعی
getFloatValue (int absIndex)
یک مقدار شناور را در یک شاخص معین برمی گرداند.
درون انتزاعی[]
getIntArray ()
یک آرایه int از مقادیر ذخیره شده در این بافر را برمی گرداند.
انتزاعی
getIntValue (int absIndex)
مقدار int را در یک شاخص معین برمی گرداند.
بین المللی[]
getShape ()
شکل فعلی را می گیرد.
انتزاعی
getTypeSize ()
تعداد بایت های یک عنصر واحد در آرایه را برمی گرداند.
بولی
isDynamic ()
اگر TensorBuffer دارای اندازه پویا باشد، برمی‌گردد (می‌تواند خودسرانه اندازه را تغییر دهد).
خلأ انتزاعی
loadArray (int[] src، int[] شکل)
یک آرایه int را با شکل خاصی در این بافر بارگذاری می کند.
خلأ انتزاعی
loadArray (شکل شناور[] src، int[])
یک آرایه شناور را با شکل خاصی در این بافر بارگذاری می کند.
خالی
loadArray (float[] src)
یک آرایه شناور را در این بافر بارگذاری می کند.
خالی
loadArray (int[] src)
یک آرایه int را در این بافر بارگذاری می کند.
خالی
loadBuffer (بافر ByteBuffer )
یک بافر بایت را در این TensorBuffer بارگیری می کند.
خالی
loadBuffer (بافر ByteBuffer ، شکل int[])
یک بافر بایت را با شکل خاصی در این TensorBuffer بارگذاری می کند.

روش های ارثی

روش های عمومی

عمومی استاتیک TensorBuffer createDynamic ( DataType dataType)

یک TensorBuffer پویا خالی با DataType مشخص شده ایجاد می کند. شکل TensorBuffer ایجاد شده {0} است.

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

مولفه های
نوع داده نوع داده TensorBuffer که باید ایجاد شود.

عمومی استاتیک 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 با اندازه ثابت پس از ایجاد قابل تغییر نیست.

مولفه های
شکل شکل TensorBuffer که باید ایجاد شود.
نوع داده نوع داده TensorBuffer که باید ایجاد شود.
پرتاب می کند
NullPointerException اگر shape پوچ باشد
IllegalArgumentException اگر shape دارای عناصر غیر مثبت باشد.

عمومی استاتیک TensorBuffer createFrom ( بافر TensorBuffer ، DataType dataType)

یک داده کپی عمیق TensorBuffer از دیگری با DataType مشخص شده ایجاد می کند.

مولفه های
بافر منبع TensorBuffer برای کپی کردن از.
نوع داده DataType مورد انتظار TensorBuffer تازه ایجاد شده.
پرتاب می کند
NullPointerException اگر buffer تهی باشد

عمومی ByteBuffer getBuffer ()

بافر داده را برمی گرداند.

چکیده عمومی DataType getDataType ()

نوع داده این بافر را برمی گرداند.

عمومی int getFlatSize ()

FlatSize بافر را دریافت می کند.

پرتاب می کند
IllegalStateException اگر داده های اساسی خراب باشد

float انتزاعی عمومی[] getFloatArray ()

یک آرایه شناور از مقادیر ذخیره شده در این بافر را برمی گرداند. اگر بافر انواع متفاوتی از float داشته باشد، مقادیر به float تبدیل می شوند. به عنوان مثال، مقادیر در TensorBufferUint8 از uint8 به float تبدیل می شوند.

float انتزاعی عمومی getFloatValue (int absIndex)

یک مقدار شناور را در یک شاخص معین برمی گرداند. اگر بافر از انواع مختلف با float باشد، مقدار به float تبدیل می شود. به عنوان مثال، هنگام خواندن یک مقدار از TensorBufferUint8 ، مقدار ابتدا به صورت uint8 خوانده می شود و سپس از uint8 به float تبدیل می شود.

 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 تبدیل می‌شوند و ممکن است از دست دادن دقت اعمال شود. به عنوان مثال، گرفتن یک آرایه int از یک TensorBufferFloat با مقادیر {400.32f، 23.04f}، خروجی {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 ()

شکل فعلی را می گیرد. (برای جلوگیری از تغییرات غیرمنتظره، یک کپی را به اینجا برگردانید.)

پرتاب می کند
IllegalStateException اگر داده های اساسی خراب باشد

انتزاعی عمومی int getTypeSize ()

تعداد بایت های یک عنصر واحد در آرایه را برمی گرداند. به عنوان مثال، یک بافر شناور 4 و یک بافر بایت 1 را برمی گرداند.

بولین عمومی isDynamic ()

اگر TensorBuffer دارای اندازه پویا باشد، برمی‌گردد (می‌تواند خودسرانه اندازه را تغییر دهد).

انتزاع عمومی void loadArray (int[] src، int[] شکل)

یک آرایه int را با شکل خاصی در این بافر بارگذاری می کند. اگر بافر انواع مختلفی از int داشته باشد، مقادیر قبل از بارگیری در بافر به نوع بافر تبدیل می شوند و ممکن است دقت از دست برود. برای مثال، با بارگذاری یک آرایه int با مقادیر {400، -23} در یک TensorBufferUint8 ، مقادیر به [0، 255] بسته می‌شوند و سپس توسط {255، 0} به uint8 فرستاده می‌شوند.

مولفه های
src آرایه منبعی که باید بارگیری شود.
شکل شکل تانسوری که src نشان می دهد.
پرتاب می کند
NullPointerException اگر src تهی باشد.
NullPointerException اگر shape پوچ باشد
IllegalArgumentException اگر اندازه آرایه ای که باید بارگذاری شود با شکل مشخص شده مطابقت نداشته باشد.

loadArray انتزاعی عمومی (شکل شناور[] src، int[])

یک آرایه شناور را با شکل خاصی در این بافر بارگذاری می کند. اگر بافر از انواع متفاوتی نسبت به شناور باشد، مقادیر قبل از بارگیری در بافر به نوع بافر تبدیل می‌شوند و ممکن است دقت از دست برود. به عنوان مثال، با بارگذاری یک آرایه شناور در یک TensorBufferUint8 با مقادیر {400.32f، -23.04f}، مقادیر به [0، 255] متصل می شوند و سپس توسط {255، 0} به uint8 فرستاده می شوند.

مولفه های
src آرایه منبعی که باید بارگیری شود.
شکل شکل تانسوری که src نشان می دهد.
پرتاب می کند
NullPointerException اگر src تهی باشد.
NullPointerException اگر shape پوچ باشد
IllegalArgumentException اگر اندازه آرایه ای که باید بارگذاری شود با شکل مشخص شده مطابقت نداشته باشد.

عمومی void loadArray (float[] src)

یک آرایه شناور را در این بافر بارگذاری می کند. اگر بافر از انواع متفاوتی نسبت به شناور باشد، مقادیر قبل از بارگیری در بافر به نوع بافر تبدیل می‌شوند و ممکن است دقت از دست برود. به عنوان مثال، با بارگذاری یک آرایه شناور در یک TensorBufferUint8 با مقادیر {400.32f، -23.04f}، مقادیر به [0، 255] متصل می شوند و سپس توسط {255، 0} به uint8 فرستاده می شوند.

با استفاده از این روش فرض می شود که شکل src با شکل این TensorBuffer یکسان است. بنابراین اندازه buffer ( src.length ) باید همیشه با اندازه مسطح این TensorBuffer هم برای TensorBuffer با اندازه ثابت و هم برای TensorBuffer پویا مطابقت داشته باشد. اگر src شکل دیگری دارد از loadArray(float[], int[]) استفاده کنید.

مولفه های
src آرایه منبعی که باید بارگیری شود.

loadArray خالی عمومی (int[] src)

یک آرایه int را در این بافر بارگذاری می کند. اگر بافر انواع مختلفی از int داشته باشد، مقادیر قبل از بارگیری در بافر به نوع بافر تبدیل می شوند و ممکن است دقت از دست برود. برای مثال، با بارگذاری یک آرایه int با مقادیر {400، -23} در یک TensorBufferUint8 ، مقادیر به [0، 255] بسته می‌شوند و سپس توسط {255، 0} به uint8 فرستاده می‌شوند.

با استفاده از این روش فرض می شود که شکل src با شکل این TensorBuffer یکسان است. بنابراین اندازه buffer ( src.length ) باید همیشه با اندازه مسطح این TensorBuffer هم برای TensorBuffer با اندازه ثابت و هم برای TensorBuffer پویا مطابقت داشته باشد. اگر src شکل متفاوتی دارد از loadArray(int[], int[]) استفاده کنید.

مولفه های
src آرایه منبعی که باید بارگیری شود.

loadBuffer خالی عمومی ( ByteBuffer buffer)

یک بافر بایت را در این TensorBuffer بارگیری می کند. اندازه بافر باید با اندازه مسطح این TensorBuffer مطابقت داشته باشد.

با استفاده از این روش فرض می شود که شکل buffer با شکل این TensorBuffer یکسان است. بنابراین اندازه buffer ( buffer.limit() ) باید همیشه با اندازه مسطح این TensorBuffer هم برای TensorBuffer با اندازه ثابت و هم برای TensorBuffer پویا مطابقت داشته باشد. اگر buffer شکل دیگری دارد از loadBuffer(ByteBuffer, int[]) استفاده کنید.

مهم: بافر بارگذاری شده یک مرجع است. اصلاح نکنید. ما در اینجا یک کپی برای نگرانی عملکرد ایجاد نمی کنیم، اما اگر اصلاح لازم است، لطفاً یک کپی تهیه کنید.

برای بهترین عملکرد، همیشه یک ByteBuffer مستقیم یا یک ByteBuffer که توسط یک آرایه پشتیبانی می شود بارگیری کنید.

اگر buffer فقط خواندنی باشد، یک استراتژی کپی روی نوشتن برای عملکرد اتخاذ می کنیم.

مولفه های
بافر بافر بایت برای بارگیری

loadBuffer خالی عمومی (بافر ByteBuffer ، شکل int[])

یک بافر بایت را با شکل خاصی در این TensorBuffer بارگذاری می کند.

مهم: بافر بارگذاری شده یک مرجع است. اصلاح نکنید. ما در اینجا یک کپی برای نگرانی عملکرد ایجاد نمی کنیم، اما اگر اصلاح لازم است، لطفاً یک کپی تهیه کنید.

برای بهترین عملکرد، همیشه یک ByteBuffer مستقیم یا یک ByteBuffer که توسط یک آرایه پشتیبانی می شود بارگیری کنید.

مولفه های
بافر بافر بایت برای بارگیری
شکل
پرتاب می کند
NullPointerException اگر buffer تهی باشد
IllegalArgumentException اگر اندازه buffer و typeSize مطابقت ندارند یا اندازه buffer و flatSize مطابقت ندارند.