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