زیر کلاس های مستقیم شناخته شده |
بافر داده را برای ورودی یا خروجی مدل نشان می دهد.
روش های عمومی
TensorBuffer استاتیک | |
TensorBuffer استاتیک | createFixedSize (int[] shape, DataType 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 ، شکل 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 تهی باشد |
---|
عمومی 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 مطابقت ندارند. |