Subclass Langsung yang Dikenal |
Menyatakan buffer data untuk input model atau output-nya.
Metode Publik
statis TensorBuffer |
createDynamic(DataType DataType)
Membuat
TensorBuffer dinamis kosong dengan DataType yang ditentukan. |
statis TensorBuffer |
createFixedSize(int[] bentuk, jenis data DataType)
|
statis TensorBuffer |
createFrom(buffer TensorBuffer, dataType DataType)
Membuat
TensorBuffer yang menyalin data secara mendalam 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 disimpan dalam buffer ini.
|
abstrak mengambang |
getFloatValue(int absIndex)
Menampilkan nilai float pada indeks yang diberikan.
|
abstrak int[] |
getIntArray()
Menampilkan array int dari nilai yang disimpan dalam buffer ini.
|
abstrak Int |
getIntValue(int absIndex)
Menampilkan nilai int pada indeks yang diberikan.
|
int[] |
getShape()
Mendapatkan bentuk saat ini.
|
abstrak Int |
getTypeSize()
Menampilkan jumlah byte dari satu elemen di array.
|
boolean |
isDynamic()
Menampilkan jika
TensorBuffer berukuran dinamis (dapat mengubah ukuran secara bebas). |
abstrak kosong |
loadArray(int[] src, int[] shape)
Memuat array int ke dalam buffer ini dengan bentuk tertentu.
|
abstrak kosong |
loadArray(float[] src, int[] bentuk)
Memuat array float ke dalam buffer ini dengan bentuk tertentu.
|
void |
loadArray(float[] src)
Memuat array float ke buffer ini.
|
void |
loadArray(int[] src)
Memuat array int ke buffer ini.
|
void | |
void |
loadBuffer(buffer ByteBuffer, bentuk int[])
Memuat buffer byte ke
TensorBuffer ini dengan bentuk tertentu. |
Metode Turunan
Metode Publik
publik statis TensorBuffer createDynamic (DataType dataType)
Membuat TensorBuffer
dinamis kosong dengan DataType
yang ditentukan. Bentuk dari
TensorBuffer
yang dibuat adalah {0}.
TensorBuffers Dinamis akan mengalokasikan ulang memori saat memuat array atau buffer data ukuran buffer yang berbeda. 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 | Jenis data TensorBuffer yang akan dibuat.
|
---|
publik statis TensorBuffer createFixedSize (int[] shape, DataType dataType)
Membuat TensorBuffer
dengan shape
dan DataType
yang ditentukan. Berikut beberapa
contoh:
// 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 yang berukuran tetap tidak dapat diubah setelah dibuat.
Parameter
bentuk | Bentuk TensorBuffer yang akan dibuat. |
---|---|
dataType | Jenis data TensorBuffer yang akan dibuat. |
Menampilkan
NullPointerException | jika shape adalah null. |
---|---|
IllegalArgumentException | jika shape memiliki elemen non-positif.
|
publik statis TensorBuffer createFrom (TensorBuffer buffer, DataType dataType)
Membuat TensorBuffer
yang menyalin data secara mendalam dari data lain, dengan DataType
yang ditentukan.
Parameter
buffer | TensorBuffer sumber yang akan disalin. |
---|---|
dataType | DataType yang diharapkan dari TensorBuffer yang baru dibuat. |
Menampilkan
NullPointerException | jika buffer adalah null.
|
---|
publik Int getFlatSize ()
Mendapatkan flatSize buffer.
Menampilkan
IllegalStateException | jika data pokok rusak |
---|
publik abstrak float[] getFloatArray ()
Menampilkan array float dari nilai yang disimpan dalam buffer ini. Jika buffer memiliki jenis berbeda
dari {i>float<i}, nilai akan dikonversi menjadi {i>float<i}. Misalnya, nilai dalam TensorBufferUint8
akan dikonversi dari uint8 menjadi float.
publik abstrak mengambang getFloatValue (int absIndex)
Menampilkan nilai float pada indeks yang diberikan. Jika {i>buffer<i} memiliki jenis yang berbeda dari float,
akan dikonversi menjadi {i>float<i}. Misalnya, saat membaca nilai dari TensorBufferUint8
, nilai tersebut akan dibacakan terlebih dahulu sebagai uint8, lalu akan dikonversi dari
uint8 agar mengambang (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. |
---|
publik abstrak int[] getIntArray ()
Menampilkan array int dari nilai yang disimpan dalam buffer ini. Jika buffer memiliki jenis yang berbeda
dari int, nilainya akan dikonversi menjadi int, dan kemungkinan kehilangan presisi. Misalnya,
mendapatkan array int dari TensorBufferFloat
dengan nilai {400.32f, 23.04f}, output
adalah {400, 23}.
publik abstrak Int getIntValue (int absIndex)
Menampilkan nilai int pada indeks yang diberikan. Jika buffer memiliki jenis yang berbeda dari int,
akan dikonversi menjadi int. Misalnya, saat membaca nilai dari TensorBufferFloat
,
nilai akan dibacakan terlebih dahulu sebagai {i>float<i}, dan kemudian akan dikonversi dari {i>float<i} ke {i>int<i}. Turun
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. |
---|
publik int[] getShape ()
Mendapatkan bentuk saat ini. (mengembalikan salinan di sini untuk menghindari modifikasi yang tidak diharapkan.)
Menampilkan
IllegalStateException | jika data pokok rusak |
---|
publik abstrak Int getTypeSize ()
Menampilkan jumlah byte dari satu elemen di array. Misalnya, {i> float buffer <i}akan hasil 4, dan buffer byte akan mengembalikan 1.
publik boolean isDynamic ()
Menampilkan jika TensorBuffer
berukuran dinamis (dapat mengubah ukuran secara bebas).
publik abstrak kosong loadArray (int[] src, int[] shape)
Memuat array int ke dalam buffer ini dengan bentuk tertentu. Jika buffer memiliki jenis berbeda
dari int, nilai akan dikonversi ke dalam tipe {i>buffer<i} sebelum dimuat ke dalam
buffer, dan kehilangan presisi mungkin terjadi. Misalnya, memuat array int dengan nilai {400,
-23} menjadi TensorBufferUint8
, nilai akan dibulatkan ke [0, 255] lalu menjadi
dilemparkan 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 himpunan (array) yang akan dimuat tidak sesuai dengan bentuk tertentu. |
publik abstrak kosong loadArray (float[] src, int[] bentuk)
Memuat array float ke dalam buffer ini dengan bentuk tertentu. Jika buffer memiliki jenis berbeda
dari {i>float<i}, nilai akan dikonversi ke dalam tipe {i>buffer<i} sebelum dimuat ke dalam
buffer, dan kehilangan presisi mungkin terjadi. Misalnya, memuat array float ke dalam TensorBufferUint8
dengan nilai {400.32f, -23.04f}, nilai tersebut akan dibulatkan ke [0, 255] dan
kemudian dilemparkan 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 himpunan (array) yang akan dimuat tidak sesuai dengan bentuk tertentu. |
publik kosong loadArray (float[] src)
Memuat array float ke buffer ini. Jika buffer memiliki jenis berbeda dari float,
dikonversi ke dalam tipe {i>buffer<i} sebelum dimuat ke dalam {i>buffer<i}, dan
presisi mungkin berlaku. Misalnya, memuat array float ke TensorBufferUint8
dengan nilai {400.32f, -23.04f}, nilai akan dibulatkan ke [0, 255] dan kemudian ditransmisikan ke
uint8 oleh {255, 0}.
Menggunakan metode ini mengasumsikan bahwa bentuk src
sama dengan bentuk ini
TensorBuffer
. Dengan demikian ukuran buffer
(src.length
) harus selalu cocok
ukuran datar 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. |
---|
publik kosong loadArray (int[] src)
Memuat array int ke buffer ini. Jika buffer memiliki jenis yang berbeda dari int,
akan dikonversi ke dalam tipe {i>buffer<i} sebelum
dimuat ke dalam {i>buffer<i}, dan hilangnya
presisi mungkin berlaku. Misalnya, memuat array int dengan nilai {400, -23} menjadi TensorBufferUint8
, nilai tersebut akan dibulatkan ke [0, 255], lalu ditransmisikan ke uint8 dengan
{255, 0}.
Menggunakan metode ini mengasumsikan bahwa bentuk src
sama dengan bentuk ini
TensorBuffer
. Dengan demikian ukuran buffer
(src.length
) harus selalu cocok
ukuran datar 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. |
---|
publik kosong loadBuffer (ByteBuffer)
Memuat buffer byte ke TensorBuffer
ini. Ukuran buffer harus sama dengan ukuran datar
TensorBuffer
ini.
Menggunakan metode ini mengasumsikan bahwa bentuk buffer
sama dengan bentuk ini
TensorBuffer
. Dengan demikian ukuran buffer
(buffer.limit()
) harus selalu
cocokkan ukuran datar TensorBuffer
ini, untuk TensorBuffer
ukuran tetap dan dinamis. Gunakan loadBuffer(ByteBuffer, int[])
jika buffer
memiliki
bentuk tertentu.
Penting: Buffering yang dimuat adalah referensi. JANGAN DIMODIFIKASI. Kita tidak membuat salinan untuk masalah performa, tetapi jika perlu perubahan, buat salinannya.
Untuk performa terbaik, selalu muat ByteBuffer
atau ByteBuffer
langsung
didukung oleh suatu array.
Jika buffer
bersifat hanya baca, kami akan menerapkan strategi salin-saat-menulis untuk performa.
Parameter
buffer | Buffering byte yang akan dimuat. |
---|
publik kosong loadBuffer (buffer ByteBuffer, bentuk int[])
Memuat buffer byte ke TensorBuffer
ini dengan bentuk tertentu.
Penting: Buffering yang dimuat adalah referensi. JANGAN DIMODIFIKASI. Kita tidak membuat salinan untuk masalah performa, tetapi jika perlu perubahan, buat salinannya.
Untuk performa terbaik, selalu muat ByteBuffer
atau ByteBuffer
langsung
didukung oleh suatu 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.
|