Znane podklasy bezpośrednie |
Reprezentuje bufor danych dla danych wejściowych lub wyjściowych modelu.
Metody publiczne
statyczny TensorBuffer | |
statyczny TensorBuffer |
createFixedSize(int[] shape, DataType dataType)
|
statyczny TensorBuffer |
createFrom(bufor TensorBuffer, typ danych DataType)
Tworzy dane precyzyjnego kopiowania danych
TensorBuffer z innego, z określoną wartością DataType . |
ByteBuffer |
getBuffer()
Zwraca bufor danych.
|
abstrakcyjne DataType |
getDataType()
Zwraca typ danych tego bufora.
|
int, |
getFlatSize()
Pobiera FlatSize bufora.
|
abstrakcyjne float[] |
getFloatArray()
Zwraca tablicę zmiennoprzecinkową wartości przechowywanych w tym buforze.
|
abstrakcyjne liczba zmiennoprzecinkowa |
getFloatValue(int absIndex)
Zwraca wartość zmiennoprzecinkową dla podanego indeksu.
|
abstrakcyjne int[] |
getIntArray()
Zwraca tablicę int dla wartości przechowywanych w tym buforze.
|
abstrakcyjne int, |
getIntValue(int absIndex)
Zwraca wartość typu int dla podanego indeksu.
|
int[] |
getShape()
Pobiera bieżący kształt.
|
abstrakcyjne int, |
getTypeSize()
Zwraca liczbę bajtów pojedynczego elementu w tablicy.
|
wartość logiczna |
isDynamic()
Zwracany, jeśli element
TensorBuffer ma rozmiar dynamiczny (można go dowolnie zmienić). |
abstrakcyjne nieważne |
loadArray(int[] src, int[] kształt)
Wczytuje do tego bufora tablicę typu int o określonym kształcie.
|
abstrakcyjne nieważne |
loadArray(float[] src, int[] kształt)
Wczytuje do tego bufora tablicę zmiennoprzecinkową o określonym kształcie.
|
nieważne |
loadArray(float[] src)
Wczytuje do tego bufora tablicę zmiennoprzecinkową.
|
nieważne |
loadArray(int[] src)
Wczytuje tablicę int do tego bufora.
|
nieważne | |
nieważne |
loadBuffer(bufor ByteBuffer, kształt int[])
Wczytuje bufor bajtów do tego zasobu (
TensorBuffer ) o określonym kształcie. |
Metody dziedziczone
Metody publiczne
publiczne statyczny TensorBuffer createDynamic (DataType)
Tworzy pusty dynamiczny element TensorBuffer
z podanym elementem DataType
. Kształt
utworzono: TensorBuffer
, to {0}.
Dynamic TensorBuffers dokona ponownego alokacji pamięci podczas wczytywania tablic lub buforów danych różne rozmiary bufora. Oto przykłady:
// 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.
Parametry
dataType | Wartość typu dataType elementu TensorBuffer do utworzenia.
|
---|
publiczne statyczny TensorBuffer createFixedSize (int[] kształt, DataType)
Tworzy obiekt TensorBuffer
z określonymi wartościami shape
i DataType
. Oto kilka
Przykłady:
// 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);
Po utworzeniu obiektu TensorBuffer o stałym rozmiarze nie można zmienić jego rozmiaru.
Parametry
kształt | Kształt elementu TensorBuffer do utworzenia. |
---|---|
dataType | Wartość typu dataType elementu TensorBuffer do utworzenia. |
Rzuty
NullPointerException | jeśli shape ma wartość null. |
---|---|
IllegalArgumentException | jeśli shape zawiera elementy niedodatnie.
|
publiczne statyczny TensorBuffer createFrom (TensorBuffer, DataType)
Tworzy dane precyzyjnego kopiowania danych TensorBuffer
z innego, z określoną wartością DataType
.
Parametry
bufor | źródło TensorBuffer do skopiowania. |
---|---|
dataType | oczekiwana wartość DataType nowo utworzonych elementów TensorBuffer . |
Rzuty
NullPointerException | jeśli buffer ma wartość null.
|
---|
publiczne int, . getFlatSize ()
Pobiera FlatSize bufora.
Rzuty
IllegalStateException | jeśli dane bazowe są uszkodzone |
---|
publiczne abstrakcyjne float[] . getFloatArray ()
Zwraca tablicę zmiennoprzecinkową wartości przechowywanych w tym buforze. Jeśli bufor jest innego typu
niż w przypadku liczby zmiennoprzecinkowej, wartości zostaną przekonwertowane na liczbę zmiennoprzecinkową. Na przykład wartości w polu TensorBufferUint8
zostaną przekształcone z uint8 na liczbę zmiennoprzecinkową.
publiczne abstrakcyjne liczba zmiennoprzecinkowa . getFloatValue (int absIndex)
Zwraca wartość zmiennoprzecinkową dla podanego indeksu. Jeśli bufor jest innego typu niż liczba zmiennoprzecinkowa, makro
zostanie przekonwertowana na liczbę zmiennoprzecinkową. Na przykład podczas odczytywania wartości z metody TensorBufferUint8
zostanie ona najpierw odczytana jako uint8, a następnie zostanie przekonwertowana z
uint8, aby unosić się w powietrzu.
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);
Parametry
absIndex | Indeks bezwzględny wartości do odczytu. |
---|
publiczne abstrakcyjne int[] . getIntArray ()
Zwraca tablicę int dla wartości przechowywanych w tym buforze. Jeśli bufor jest innego typu
niż int, wartości zostaną przekonwertowane na liczbę całkowitą i może nastąpić utrata dokładności. Przykład:
pobrana z tablicy TensorBufferFloat
o wartościach {400.32f, 23.04f}, dane wyjściowe
wynosi {400, 23}.
publiczne abstrakcyjne int, . getIntValue (int absIndex)
Zwraca wartość typu int dla podanego indeksu. Jeśli bufor jest innego typu niż int, wartość
zostanie skonwertowana na int. Na przykład podczas odczytu wartości z TensorBufferFloat
,
najpierw wartość jest odczytywana jako liczba zmiennoprzecinkowa, a następnie przekształcana z liczby zmiennoprzecinkowej na int. Strata
z większą precyzją.
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.
Parametry
absIndex | Indeks bezwzględny wartości do odczytu. |
---|
publiczne int[] . getShape ()
Pobiera bieżący kształt. (zwróć tutaj kopię, aby uniknąć nieoczekiwanych zmian).
Rzuty
IllegalStateException | jeśli dane bazowe są uszkodzone |
---|
publiczne abstrakcyjne int, . getTypeSize ()
Zwraca liczbę bajtów pojedynczego elementu w tablicy. Na przykład bufor zmiennoprzecinkowy będzie zwróci wartość 4, a bufor bajtów zwróci wartość 1.
publiczne Wartość logiczna . isDynamic ()
Zwracany, jeśli element TensorBuffer
ma rozmiar dynamiczny (można go dowolnie zmienić).
publiczne abstrakcyjne nieważne . loadArray (int[] src, int[] kształt)
Wczytuje do tego bufora tablicę typu int o określonym kształcie. Jeśli bufor jest innego typu
niż int, wartości zostaną przekonwertowane na typ bufora przed wczytaniem do
bufor i może dojść do utraty precyzji. Na przykład wczytując tablicę int z wartościami {400,
-23} do TensorBufferUint8
, wartości zostaną zmniejszone do [0, 255], a następnie
rzutowany do uint8 przez {255, 0}.
Parametry
src | Tablica źródłowa do wczytania. |
---|---|
kształt | Kształt tensora, który reprezentuje src . |
Rzuty
NullPointerException | jeśli src ma wartość null. |
---|---|
NullPointerException | jeśli shape ma wartość null. |
IllegalArgumentException | jeśli rozmiar wczytywanej tablicy nie odpowiada o określonym kształcie. |
publiczne abstrakcyjne nieważne . loadArray (float[] src, int[] shape)
Wczytuje do tego bufora tablicę zmiennoprzecinkową o określonym kształcie. Jeśli bufor jest innego typu
niż w przypadku liczby zmiennoprzecinkowej, wartości zostaną przekonwertowane na typ bufora przed wczytaniem do
bufor i może dojść do utraty precyzji. Na przykład podczas wczytywania tablicy zmiennoprzecinkowej do funkcji TensorBufferUint8
o wartościach {400.32f, -23.04f} wartości zostaną ograniczone do [0, 255],
a następnie rzutowana na uint8 przez {255, 0}.
Parametry
src | Tablica źródłowa do wczytania. |
---|---|
kształt | Kształt tensora, który reprezentuje src . |
Rzuty
NullPointerException | jeśli src ma wartość null. |
---|---|
NullPointerException | jeśli shape ma wartość null. |
IllegalArgumentException | jeśli rozmiar wczytywanej tablicy nie odpowiada o określonym kształcie. |
publiczne nieważne . loadArray (float[] src)
Wczytuje do tego bufora tablicę zmiennoprzecinkową. Jeśli bufor jest innego typu niż liczba zmiennoprzecinkowa, makro
przed załadowaniem do bufora wartości zostaną przekonwertowane na typ bufora,
z większą precyzją. Na przykład wczytanie tablicy zmiennoprzecinkowej do klasy TensorBufferUint8
z wartościami {400.32f, -23.04f}, wartości zostaną ograniczone do [0, 255], a następnie rzutowane na
uint8 przez {255, 0}.
W przypadku tej metody założono, że kształt bryły src
jest taki sam jak kształt
TensorBuffer
Dzięki temu rozmiar elementu buffer
(src.length
) powinien zawsze być taki sam.
płaski rozmiar tego elementu (TensorBuffer
), zarówno w przypadku stałego, jak i dynamicznego elementu TensorBuffer
. Użyj loadArray(float[], int[])
, jeśli src
ma inny kształt.
Parametry
src | Tablica źródłowa do wczytania. |
---|
publiczne nieważne . loadArray (int[] src)
Wczytuje tablicę int do tego bufora. Jeśli bufor jest innego typu niż int, wartości
przed załadowaniem do bufora, a utrata
precyzja może być stosowana. Na przykład podczas wczytywania tablicy całkowitej z wartościami {400, -23} do funkcji TensorBufferUint8
wartości zostaną ograniczone do wartości [0, 255], a następnie rzutowane na uint8 przez
{255, 0}.
W przypadku tej metody założono, że kształt bryły src
jest taki sam jak kształt
TensorBuffer
Dzięki temu rozmiar elementu buffer
(src.length
) powinien zawsze być taki sam.
płaski rozmiar tego elementu (TensorBuffer
), zarówno w przypadku stałego, jak i dynamicznego elementu TensorBuffer
. Użyj loadArray(int[], int[])
, jeśli src
ma inny kształt.
Parametry
src | Tablica źródłowa do wczytania. |
---|
publiczne nieważne . loadBuffer (Bufor ByteBuffer)
Wczytuje bufor bajtów do tego zasobnika (TensorBuffer
). Rozmiar bufora musi być zgodny z płaskim rozmiarem
TensorBuffer
.
W przypadku tej metody założono, że kształt bryły buffer
jest taki sam jak kształt
TensorBuffer
Dlatego buffer
(buffer.limit()
) zawsze powinien
dopasuj płaski rozmiar tego elementu (TensorBuffer
) zarówno w przypadku stałego, jak i dynamicznego elementu TensorBuffer
. Użyj loadBuffer(ByteBuffer, int[])
, jeśli buffer
ma inny atrybut
kształtu.
Ważne: bufor wczytany to wartość referencyjna. NIE MODYFIKOWAĆ. Nie tworzymy tutaj kopii dla ale jeśli konieczna jest zmiana, utwórz kopię.
Aby uzyskać najlepszą wydajność, zawsze ładuj bezpośredni plik ByteBuffer
lub ByteBuffer
.
wspierany przez tablicę.
Jeśli plik buffer
jest w trybie tylko do odczytu, w celu zwiększenia wydajności stosujemy strategię kopiowania i pisania.
Parametry
bufor | Bufor bajtów do wczytania. |
---|
publiczne nieważne . loadBuffer (Bufor ByteBuffer, kształt int[])
Wczytuje bufor bajtów do zasobnika TensorBuffer
o określonym kształcie.
Ważne: bufor wczytany to wartość referencyjna. NIE MODYFIKOWAĆ. Nie tworzymy tutaj kopii dla ale jeśli konieczna jest zmiana, utwórz kopię.
Aby uzyskać najlepszą wydajność, zawsze ładuj bezpośredni plik ByteBuffer
lub ByteBuffer
.
wspierany przez tablicę.
Parametry
bufor | Bufor bajtów do wczytania. |
---|---|
kształt |
Rzuty
NullPointerException | jeśli buffer ma wartość null. |
---|---|
IllegalArgumentException | jeśli rozmiary buffer i typeSize nie mają
lub rozmiary elementów buffer i flatSize nie są zgodne.
|