TensorBuffer

Öffentlicher abstrakter Kurs TensorBuffer
Bekannte direkte Unterklassen

Stellt den Datenpuffer für die Eingabe oder Ausgabe eines Modells dar.

Public Methods

Statisch TensorBuffer
createDynamic(DataType dataType)
Erstellt eine leere dynamische TensorBuffer mit der angegebenen DataType.
Statisch TensorBuffer
createFixedSize(int[]-Form, DataType-Datentyp)
Erstellt eine TensorBuffer mit den angegebenen shape und DataType.
Statisch TensorBuffer
createFrom(TensorBuffer-Zwischenspeicher, DataType dataType)
Erstellt eine TensorBuffer, bei der Daten aus einem anderen Deeplink mit der angegebenen DataType kopiert werden.
ByteBuffer
getBuffer()
Gibt den Datenpuffer zurück.
Abstrakt DataType
getDataType()
Gibt den Datentyp dieses Zwischenspeichers zurück.
int
getFlatSize()
Ruft die flache Größe des Zwischenspeichers ab.
Abstrakt float[]
getFloatArray()
Gibt ein Float-Array der in diesem Zwischenspeicher gespeicherten Werte zurück.
Abstrakt schweben
getFloatValue(int absIndex)
Gibt einen Gleitkommawert bei einem bestimmten Index zurück.
Abstrakt int[]
getIntArray()
Gibt ein int-Array der in diesem Zwischenspeicher gespeicherten Werte zurück.
Abstrakt Ganzzahl
getIntValue(int absIndex)
Gibt einen Ganzzahlwert bei einem bestimmten Index zurück.
int[]
getShape()
Ruft die aktuelle Form ab.
Abstrakt Ganzzahl
getTypeSize()
Gibt die Anzahl der Byte eines einzelnen Elements im Array zurück.
boolean
isDynamic()
Gibt zurück, wenn TensorBuffer eine dynamische Größe hat (kann beliebig geändert werden).
Abstrakt voidm
loadArray(int[] src, int[] shape)
Lädt ein int-Array mit einer bestimmten Form in diesen Zwischenspeicher.
Abstrakt voidm
loadArray(float[] src, int[] shape)
Lädt ein Float-Array mit einer bestimmten Form in diesen Zwischenspeicher.
voidm
loadArray(float[] src)
Lädt ein Float-Array in diesen Zwischenspeicher.
voidm
loadArray(int[] src)
Lädt ein int-Array in diesen Zwischenspeicher.
voidm
loadBuffer(ByteBuffer-Zwischenspeicher)
Lädt einen Byte-Zwischenspeicher in diesen TensorBuffer.
voidm
loadBuffer(ByteBuffer buffer, int[] shape)
Lädt einen Byte-Zwischenspeicher mit einer bestimmten Form in diesen TensorBuffer.

Übernommene Methoden

Public Methods

<ph type="x-smartling-placeholder"></ph> öffentlich Statisch TensorBuffer createDynamic (Datentyp DataType)

Erstellt eine leere dynamische TensorBuffer mit der angegebenen DataType. Die Form des Erstellt am TensorBuffer ist {0}.

Dynamische TensorBuffers weisen Arbeitsspeicher neu zu, wenn Arrays oder Datenpuffer von verschiedene Puffergrößen. Beispiele:

 // 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 Der Datentyp des zu erstellenden TensorBuffer-Elements.

<ph type="x-smartling-placeholder"></ph> öffentlich Statisch TensorBuffer createFixedSize (int[] shape, DataType dataType)

Erstellt eine TensorBuffer mit den angegebenen shape und DataType. Hier sind einige Beispiele:

 // 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);
 

Die Größe eines TensorBuffers mit fester Größe kann nach dem Erstellen nicht mehr geändert werden.

Parameter
shape Die Form des zu erstellenden TensorBuffer.
dataType Der Datentyp des zu erstellenden TensorBuffer-Elements.
Löst aus
NullPointerException wenn shape null ist.
IllegalArgumentException shape nicht positive Elemente enthält.

<ph type="x-smartling-placeholder"></ph> öffentlich Statisch TensorBuffer createFrom (TensorBuffer-Zwischenspeicher, DataType-Datentyp)

Erstellt eine TensorBuffer, bei der Daten aus einem anderen Deeplink mit der angegebenen DataType kopiert werden.

Parameter
Puffer die Quelle TensorBuffer, aus der kopiert werden soll.
dataType Die erwartete DataType von neu erstellten TensorBuffer.
Löst aus
NullPointerException wenn buffer null ist.

<ph type="x-smartling-placeholder"></ph> öffentlich ByteBuffer getBuffer ()

Gibt den Datenpuffer zurück.

<ph type="x-smartling-placeholder"></ph> öffentlich Abstrakt DataType getDataType ()

Gibt den Datentyp dieses Zwischenspeichers zurück.

<ph type="x-smartling-placeholder"></ph> öffentlich Ganzzahl getFlatSize ()

Ruft die flache Größe des Zwischenspeichers ab.

Löst aus
IllegalStateException Die zugrunde liegenden Daten sind beschädigt.

<ph type="x-smartling-placeholder"></ph> öffentlich Abstrakt float[] getFloatArray ()

Gibt ein Float-Array der in diesem Zwischenspeicher gespeicherten Werte zurück. Wenn der Zwischenspeicher unterschiedlich ist als Gleitkommazahl, werden die Werte in eine Gleitkommazahl konvertiert. Werte in TensorBufferUint8 werden beispielsweise von uint8 in float konvertiert.

<ph type="x-smartling-placeholder"></ph> öffentlich Abstrakt schweben getFloatValue (int absIndex)

Gibt einen Gleitkommawert bei einem bestimmten Index zurück. Weist der Puffer andere Typen auf als der Puffertyp, wird der Parameter wird in eine Gleitkommazahl konvertiert. Wenn beispielsweise ein Wert aus TensorBufferUint8 gelesen wird, wird der Wert zuerst als uint8 ausgelesen und dann aus uint8 in "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 Der absolute Index des zu lesenden Werts.

<ph type="x-smartling-placeholder"></ph> öffentlich Abstrakt int[] getIntArray ()

Gibt ein int-Array der in diesem Zwischenspeicher gespeicherten Werte zurück. Wenn der Puffer einen anderen Typ hat als int, werden die Werte in eine Ganzzahl konvertiert, was zu einem Genauigkeitsverlust führen kann. Beispiel: wenn Sie ein Ganzzahl-Array von einer TensorBufferFloat mit den Werten {400.32f, 23.04f} erhalten, wird die Ausgabe ist {400, 23}.

<ph type="x-smartling-placeholder"></ph> öffentlich Abstrakt Ganzzahl getIntValue (int absIndex)

Gibt einen Ganzzahlwert bei einem bestimmten Index zurück. Wenn der Puffer einen anderen Typ hat als int, wird der Wert wird in eine Ganzzahl umgewandelt. Wenn beispielsweise ein Wert aus TensorBufferFloat gelesen wird, wird der Wert zuerst als Gleitkommazahl ausgelesen und dann von Gleitkomma zu Ganzzahl konvertiert. Verlust möglicherweise nicht sehr präzise sind.

 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 Der absolute Index des zu lesenden Werts.

<ph type="x-smartling-placeholder"></ph> öffentlich int[] getShape ()

Ruft die aktuelle Form ab. (eine Kopie wird an diese Stelle zurückgegeben, um unerwartete Änderungen zu vermeiden.)

Löst aus
IllegalStateException Die zugrunde liegenden Daten sind beschädigt.

<ph type="x-smartling-placeholder"></ph> öffentlich Abstrakt Ganzzahl getTypeSize ()

Gibt die Anzahl der Byte eines einzelnen Elements im Array zurück. Ein Float-Zwischenspeicher wird und ein Byte-Zwischenspeicher 1 zurückgibt.

<ph type="x-smartling-placeholder"></ph> öffentlich Boolescher Wert isDynamic ()

Gibt zurück, wenn TensorBuffer eine dynamische Größe hat (kann beliebig geändert werden).

<ph type="x-smartling-placeholder"></ph> öffentlich Abstrakt voidm loadArray (int[] src, int[] shape)

Lädt ein int-Array mit einer bestimmten Form in diesen Zwischenspeicher. Wenn der Zwischenspeicher unterschiedlich ist als "int", werden die Werte vor dem Laden in den Puffer ein, was zu Genauigkeitsverlusten führen kann. Wenn Sie beispielsweise ein int-Array mit den Werten {400, -23} in einen TensorBufferUint8 umwandeln , werden die Werte auf [0, 255] gesetzt und dann von {255, 0} in uint8 umgewandelt.

Parameter
src Das zu ladende Quellarray.
shape Form des Tensors, den src repräsentiert.
Löst aus
NullPointerException wenn src null ist.
NullPointerException wenn shape null ist.
IllegalArgumentException wenn die Größe des zu ladenden Arrays nicht mit der bestimmte Form angeben.

<ph type="x-smartling-placeholder"></ph> öffentlich Abstrakt voidm loadArray (float[] src, int[] shape)

Lädt ein Float-Array mit einer bestimmten Form in diesen Zwischenspeicher. Wenn der Zwischenspeicher unterschiedlich ist als Gleitkommazahl werden die Werte in den Typ des Zwischenspeichers konvertiert, bevor sie in den Puffer ein, was zu Genauigkeitsverlusten führen kann. Wenn Sie beispielsweise ein Gleitkommazahl-Array in eine TensorBufferUint8 mit den Werten {400.32f, -23.04f} laden, werden die Werte auf [0, 255] gesetzt und und dann von {255, 0} in uint8 umgewandelt werden.

Parameter
src Das zu ladende Quellarray.
shape Form des Tensors, den src repräsentiert.
Löst aus
NullPointerException wenn src null ist.
NullPointerException wenn shape null ist.
IllegalArgumentException wenn die Größe des zu ladenden Arrays nicht mit der bestimmte Form angeben.

<ph type="x-smartling-placeholder"></ph> öffentlich voidm loadArray (float[] src)

Lädt ein Float-Array in diesen Zwischenspeicher. Weist der Puffer andere Typen auf als der Puffertyp, wird der Parameter werden vor dem Laden in den Zwischenspeicher in den Typ des Zwischenspeichers konvertiert. möglicherweise nicht sehr präzise sind. Wenn beispielsweise ein Float-Array in ein TensorBufferUint8 geladen wird, mit den Werten {400.32f, -23.04f} werden die Werte auf [0, 255] gesetzt und dann in uint8 von {255, 0}.

Bei dieser Methode wird davon ausgegangen, dass die Form von src der Form dieses TensorBuffer. Daher sollte die Größe von buffer (src.length) immer übereinstimmen Die flache Größe dieses TensorBuffer, sowohl für feste Größe als auch für dynamische TensorBuffer. Verwende loadArray(float[], int[]), wenn src eine andere Form hat.

Parameter
src Das zu ladende Quellarray.

<ph type="x-smartling-placeholder"></ph> öffentlich voidm loadArray (int[] src)

Lädt ein int-Array in diesen Zwischenspeicher. Wenn der Puffer einen anderen Typ hat als int, werden die Werte in den Zwischenspeichertyp konvertiert, bevor er in den Zwischenspeicher geladen wird, und der Verlust von möglicherweise ungenau sind. Wenn Sie beispielsweise ein int-Array mit den Werten {400, -23} in ein TensorBufferUint8 laden, werden die Werte auf [0, 255] gesetzt und dann von {255, 0}.

Bei dieser Methode wird davon ausgegangen, dass die Form von src der Form dieses TensorBuffer. Daher sollte die Größe von buffer (src.length) immer übereinstimmen Die flache Größe dieses TensorBuffer, sowohl für feste Größe als auch für dynamische TensorBuffer. Verwende loadArray(int[], int[]), wenn src eine andere Form hat.

Parameter
src Das zu ladende Quellarray.

<ph type="x-smartling-placeholder"></ph> öffentlich voidm loadBuffer (ByteBuffer-Zwischenspeicher)

Lädt einen Byte-Zwischenspeicher in diesen TensorBuffer. Die Puffergröße muss der flachen Größe von dieses TensorBuffer.

Bei dieser Methode wird davon ausgegangen, dass die Form von buffer der Form dieses TensorBuffer. Daher sollte die Größe von buffer (buffer.limit()) immer entspricht der flachen Größe dieses TensorBuffer sowohl für feste Größe als auch für dynamische TensorBuffer. loadBuffer(ByteBuffer, int[]) verwenden, wenn buffer eine andere Form.

Wichtig: Der geladene Zwischenspeicher ist eine Referenz. NICHT ÄNDERN. Wir erstellen hier keine Kopie Leistungsprobleme. Falls Änderungen erforderlich sind, erstellen Sie bitte eine Kopie.

Für eine optimale Leistung solltest du immer einen direkten ByteBuffer- oder ByteBuffer-Wert laden. durch ein Array gestützt wird.

Ist buffer schreibgeschützt, wird eine Copy-on-Write-Strategie verwendet, um die Leistung zu steigern.

Parameter
Puffer Der zu ladende Byte-Zwischenspeicher.

<ph type="x-smartling-placeholder"></ph> öffentlich voidm loadBuffer (ByteBuffer-Zwischenspeicher, int[] shape)

Lädt einen Byte-Zwischenspeicher mit einer bestimmten Form in diesen TensorBuffer.

Wichtig: Der geladene Zwischenspeicher ist eine Referenz. NICHT ÄNDERN. Wir erstellen hier keine Kopie Leistungsprobleme. Falls Änderungen erforderlich sind, erstellen Sie bitte eine Kopie.

Für eine optimale Leistung solltest du immer einen direkten ByteBuffer- oder ByteBuffer-Wert laden. durch ein Array gestützt wird.

Parameter
Puffer Der zu ladende Byte-Zwischenspeicher.
shape
Löst aus
NullPointerException wenn buffer null ist.
IllegalArgumentException wenn die Größe von buffer und typeSize nicht oder die Größe von buffer und flatSize nicht übereinstimmt.