TensorBuffer

publiczna zajęcia abstrakcyjne TensorBuffer
Znane podklasy bezpośrednie

Reprezentuje bufor danych dla danych wejściowych lub wyjściowych modelu.

Metody publiczne

statyczny TensorBuffer
createDynamic(DataType)
Tworzy pusty dynamiczny element TensorBuffer z podanym elementem DataType.
statyczny TensorBuffer
createFixedSize(int[] shape, DataType dataType)
Tworzy obiekt TensorBuffer z określonymi wartościami shape i 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
loadBuffer(bufor ByteBuffer)
Wczytuje bufor bajtów do tego zasobnika (TensorBuffer).
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 ByteBuffer getBuffer ()

Zwraca bufor danych.

publiczne abstrakcyjne DataType getDataType ()

Zwraca typ danych tego bufora.

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.