Subclass Langsung yang Diketahui |
Menampilkan buffer data untuk input model atau outputnya.
Metode Publik
statis TensorBuffer |
createDynamic(dataType DataType)
Membuat
TensorBuffer dinamis kosong dengan DataType yang ditentukan. |
statis TensorBuffer |
createFixedSize(int[] shape, dataType DataType)
|
statis TensorBuffer |
createFrom(buffer TensorBuffer, dataType DataType)
Membuat data yang disalin secara mendalam
TensorBuffer dari data lain, dengan DataType yang ditentukan. |
ByteBuffer |
getBuffer()
Menampilkan buffer data.
|
abstrak DataType |
getDataType()
Menampilkan jenis data buffer ini.
|
int |
getFlatSize()
Mendapatkan flatSize buffer.
|
abstrak float[] |
getFloatArray()
Menampilkan array float dari nilai yang tersimpan di buffer ini.
|
float abstrak |
getFloatValue(int absIndex)
Menampilkan nilai float pada indeks yang diberikan.
|
abstrak int[] |
getIntArray()
Menampilkan array int dari nilai yang tersimpan dalam buffer ini.
|
abstrak int |
getIntValue(int absIndex)
Menampilkan nilai int pada indeks tertentu.
|
int[] |
getShape()
Mendapatkan bentuk saat ini.
|
abstrak int |
getTypeSize()
Menampilkan jumlah byte dari satu elemen dalam array.
|
boolean |
isDynamic()
Menampilkan jika
TensorBuffer memiliki ukuran dinamis (dapat diubah ukurannya secara arbitrer). |
abstrak void |
loadArray(int[] src, int[] shape)
Memuat array int ke dalam buffer ini dengan bentuk tertentu.
|
abstrak void |
loadArray(float[] src, int[] shape)
Memuat array float ke dalam buffer ini dengan bentuk tertentu.
|
void |
loadArray(float[] src)
Memuat array float ke dalam buffer ini.
|
void |
loadArray(int[] src)
Memuat array int ke buffer ini.
|
void | |
void |
loadBuffer(buffer ByteBuffer, bentuk int[])
Memuat buffering byte ke dalam
TensorBuffer ini dengan bentuk tertentu. |
Metode Turunan
Metode Publik
publik statis TensorBuffer createDynamic (DataType dataType)
Membuat TensorBuffer
dinamis kosong dengan DataType
yang ditentukan. Bentuk
TensorBuffer
yang dibuat adalah {0}.
Dynamic TensorBuffers akan mengalokasikan ulang memori saat memuat array atau buffer data dari berbagai ukuran buffer. Berikut beberapa contohnya:
// 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.
Parameter
dataType | dataType TensorBuffer yang akan dibuat.
|
---|
publik statis TensorBuffer createFixedSize (int[] shape, DataType dataType)
Membuat TensorBuffer
dengan shape
dan DataType
yang ditentukan. Berikut beberapa
contohnya:
// 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);
Ukuran TensorBuffer ukuran tetap tidak dapat diubah setelah dibuat.
Parameter
bentuk | Bentuk TensorBuffer yang akan dibuat. |
---|---|
dataType | dataType TensorBuffer yang akan dibuat. |
Menampilkan
NullPointerException | jika shape adalah null. |
---|---|
IllegalArgumentException | jika shape memiliki elemen non-positif.
|
publik statis TensorBuffer createFrom (buffer TensorBuffer, DataType dataType)
Membuat data yang disalin secara mendalam TensorBuffer
dari data lain, dengan DataType
yang ditentukan.
Parameter
buffer | TensorBuffer sumber untuk menyalin. |
---|---|
dataType | DataType yang diharapkan dari TensorBuffer yang baru dibuat. |
Menampilkan
NullPointerException | jika buffer adalah null.
|
---|
public int getFlatSize ()
Mendapatkan flatSize buffer.
Menampilkan
IllegalStateException | jika data yang mendasarinya rusak |
---|
public abstrak float[] getFloatArray ()
Menampilkan array float dari nilai yang tersimpan di buffer ini. Jika buffer memiliki jenis yang berbeda
dengan float, nilainya akan dikonversi menjadi float. Misalnya, nilai dalam TensorBufferUint8
akan dikonversi dari uint8 menjadi float.
public abstrak float getFloatValue (int absIndex)
Menampilkan nilai float pada indeks yang diberikan. Jika buffer memiliki jenis yang berbeda dengan float, nilai akan dikonversi menjadi float. Misalnya, saat membaca nilai dari TensorBufferUint8
, nilai tersebut akan dibaca terlebih dahulu sebagai uint8, lalu akan dikonversi dari uint8 menjadi 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);
Parameter
absIndex | Indeks absolut dari nilai yang akan dibaca. |
---|
public abstract int[] getIntArray ()
Menampilkan array int dari nilai yang tersimpan dalam buffer ini. Jika buffer memiliki jenis yang berbeda dengan int, nilai tersebut akan dikonversi menjadi int, dan kerugian presisi mungkin berlaku. Misalnya, mendapatkan array int dari TensorBufferFloat
dengan nilai {400.32f, 23.04f}, output-nya adalah {400, 23}.
public abstract int getIntValue (int absIndex)
Menampilkan nilai int pada indeks tertentu. Jika buffer memiliki jenis yang berbeda dengan int, nilai tersebut akan dikonversi menjadi int. Misalnya, saat membaca nilai dari TensorBufferFloat
, nilai tersebut akan dibaca terlebih dahulu sebagai float, lalu akan dikonversi dari float ke int. Kerugian presisi mungkin berlaku.
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.
Parameter
absIndex | Indeks absolut dari nilai yang akan dibaca. |
---|
public int[] getShape ()
Mendapatkan bentuk saat ini. (menampilkan salinan di sini untuk menghindari modifikasi yang tidak terduga.)
Menampilkan
IllegalStateException | jika data yang mendasarinya rusak |
---|
public abstrak int getTypeSize ()
Menampilkan jumlah byte dari satu elemen dalam array. Misalnya, buffer float akan menampilkan 4, dan buffering byte akan menampilkan 1.
publik boolean isDynamic ()
Menampilkan jika TensorBuffer
memiliki ukuran dinamis (dapat diubah ukurannya secara arbitrer).
public abstrak void loadArray (int[] src, int[] shape)
Memuat array int ke dalam buffer ini dengan bentuk tertentu. Jika buffer memiliki jenis yang berbeda dengan int, nilai tersebut akan dikonversi menjadi jenis buffer sebelum dimuat ke dalam buffer, dan kemungkinan kehilangan presisi. Misalnya, memuat array int dengan nilai {400, -23} ke TensorBufferUint8
, nilainya akan dibulatkan ke [0, 255] lalu di-cast ke uint8 oleh {255, 0}.
Parameter
src | Array sumber yang akan dimuat. |
---|---|
bentuk | Bentuk tensor yang diwakili src . |
Menampilkan
NullPointerException | jika src adalah null. |
---|---|
NullPointerException | jika shape adalah null. |
IllegalArgumentException | jika ukuran array yang akan dimuat tidak sesuai dengan bentuk yang ditentukan. |
public abstrak void loadArray (float[] src, int[] shape)
Memuat array float ke dalam buffer ini dengan bentuk tertentu. Jika buffer memiliki jenis yang berbeda dengan float, nilai tersebut akan dikonversi menjadi jenis buffer sebelum dimuat ke dalam buffer, dan kemungkinan kehilangan presisi. Misalnya, memuat array float ke dalam TensorBufferUint8
dengan nilai {400.32f, -23.04f}, nilai tersebut akan dibulatkan ke [0, 255], lalu
dimasukkan ke uint8 oleh {255, 0}.
Parameter
src | Array sumber yang akan dimuat. |
---|---|
bentuk | Bentuk tensor yang diwakili src . |
Menampilkan
NullPointerException | jika src adalah null. |
---|---|
NullPointerException | jika shape adalah null. |
IllegalArgumentException | jika ukuran array yang akan dimuat tidak sesuai dengan bentuk yang ditentukan. |
public void loadArray (float[] src)
Memuat array float ke dalam buffer ini. Jika buffer memiliki jenis yang berbeda dengan float, nilai tersebut akan dikonversi menjadi jenis buffer sebelum dimuat ke dalam buffer, dan dapat terjadi kehilangan presisi. Misalnya, memuat array float ke dalam TensorBufferUint8
dengan nilai {400.32f, -23.04f}, nilai tersebut akan dibatasi ke [0, 255], lalu dikonversi ke uint8 oleh {255, 0}.
Penggunaan metode ini mengasumsikan bahwa bentuk src
sama dengan bentuk TensorBuffer
ini. Dengan demikian, ukuran buffer
(src.length
) harus selalu cocok dengan ukuran tetap TensorBuffer
ini, untuk TensorBuffer
ukuran tetap dan dinamis. Gunakan loadArray(float[], int[])
jika src
memiliki bentuk yang berbeda.
Parameter
src | Array sumber yang akan dimuat. |
---|
public void loadArray (int[] src)
Memuat array int ke buffer ini. Jika buffer memiliki jenis yang berbeda dengan int, nilai tersebut akan dikonversi menjadi jenis buffer sebelum dimuat ke dalam buffer, dan kemungkinan dapat terjadi kehilangan presisi. Misalnya, memuat array int dengan nilai {400, -23} ke TensorBufferUint8
, nilainya akan dibatasi ke [0, 255] lalu dikonversi ke uint8 oleh {255, 0}.
Penggunaan metode ini mengasumsikan bahwa bentuk src
sama dengan bentuk TensorBuffer
ini. Dengan demikian, ukuran buffer
(src.length
) harus selalu cocok dengan ukuran tetap TensorBuffer
ini, untuk TensorBuffer
ukuran tetap dan dinamis. Gunakan loadArray(int[], int[])
jika src
memiliki bentuk yang berbeda.
Parameter
src | Array sumber yang akan dimuat. |
---|
public void loadBuffer (buffer ByteBuffer)
Memuat buffering byte ke dalam TensorBuffer
ini. Ukuran buffer harus cocok dengan ukuran tetap TensorBuffer
ini.
Penggunaan metode ini mengasumsikan bahwa bentuk buffer
sama dengan bentuk TensorBuffer
ini. Dengan demikian, ukuran buffer
(buffer.limit()
) harus selalu
cocok dengan ukuran tetap TensorBuffer
ini, baik untuk TensorBuffer
ukuran tetap maupun dinamis. Gunakan loadBuffer(ByteBuffer, int[])
jika buffer
memiliki bentuk
yang berbeda.
Penting: Buffering yang dimuat adalah referensi. JANGAN MENGUBAH. Kami tidak membuat salinan di sini karena masalah performa, tetapi jika perlu modifikasi, harap buat salinannya.
Untuk performa terbaik, selalu muat ByteBuffer
langsung atau ByteBuffer
yang didukung oleh array.
Jika buffer
bersifat hanya baca, kami akan menerapkan strategi salin-saat-menulis untuk performa.
Parameter
buffer | Buffering byte yang akan dimuat. |
---|
public void loadBuffer (ByteBuffer buffer, int[] shape)
Memuat buffering byte ke dalam TensorBuffer
ini dengan bentuk tertentu.
Penting: Buffering yang dimuat adalah referensi. JANGAN MENGUBAH. Kami tidak membuat salinan di sini karena masalah performa, tetapi jika perlu modifikasi, harap buat salinannya.
Untuk performa terbaik, selalu muat ByteBuffer
langsung atau ByteBuffer
yang didukung oleh array.
Parameter
buffer | Buffering byte yang akan dimuat. |
---|---|
bentuk |
Menampilkan
NullPointerException | jika buffer adalah null. |
---|---|
IllegalArgumentException | jika ukuran buffer dan typeSize tidak
cocok atau ukuran buffer dan flatSize tidak cocok.
|